private Route _upsertRoute(int index, Route route)
{
if (index == -1)
{
_routes.Add(route);
return route;
}
else if (route.NextHop.IsBroadcast()) // give preference to local routes
{
_routes[index] = route;
return route;
}
else if (!_routes[index].NextHop.IsBroadcast()) // don't overwrite local routes
{
_routes[index] = route;
return route;
}
else
return _routes[index];
}