-static int
-netdev_vport_reset_routes(void)
-{
- return netdev_vport_reset_name_else_route(false);
-}
-
-static int
-netdev_vport_reset_names(void)
-{
- return netdev_vport_reset_name_else_route(true);
-}
-
-static void
-netdev_vport_route_change(const struct rtnetlink_route_change *change,
- void *aux OVS_UNUSED)
-{
-
- if (!change) {
- netdev_vport_reset_routes();
- } else if (change->nlmsg_type == RTM_NEWROUTE) {
- uint32_t hash;
- struct route_node *rn;
-
- if (route_node_lookup(change->rta_oif, change->rta_dst,
- change->rtm_dst_len)) {
- return;
- }
-
- rn = xzalloc(sizeof *rn);
- rn->rta_oif = change->rta_oif;
- rn->rta_dst = change->rta_dst;
- rn->rtm_dst_len = change->rtm_dst_len;
-
- hash = hash_3words(rn->rta_oif, rn->rta_dst, rn->rtm_dst_len);
- hmap_insert(&route_map, &rn->node, hash);
- } else if (change->nlmsg_type == RTM_DELROUTE) {
- struct route_node *rn;
-
- rn = route_node_lookup(change->rta_oif, change->rta_dst,
- change->rtm_dst_len);
-
- if (rn) {
- hmap_remove(&route_map, &rn->node);
- free(rn);
- }
- } else {
- VLOG_WARN_RL(&rl, "Received unexpected rtnetlink message type %d",
- change->nlmsg_type);
- }
-}
-