- if (!change) {
- VLOG_DBG_RL(&rl, "received NULL change message");
- route_table_reset();
- } else if (!change->relevant) {
- VLOG_DBG_RL(&rl, "ignoring irrelevant change message");
- } else if (change->nlmsg_type == RTM_NEWROUTE) {
- if (!route_node_lookup(&change->rd)) {
- struct route_node *rn;
-
- rn = xzalloc(sizeof *rn);
- memcpy(&rn->rd, &change->rd, sizeof change->rd);
-
- hmap_insert(&route_map, &rn->node, hash_route_data(&rn->rd));
- } else {
- VLOG_DBG_RL(&rl, "skipping insertion of duplicate route entry");
- }
- } else if (change->nlmsg_type == RTM_DELROUTE) {
+ route_table_valid = false;
+}
+
+static void
+route_table_handle_msg(const struct route_table_msg *change)
+{
+ if (change->relevant && change->nlmsg_type == RTM_NEWROUTE &&
+ !route_node_lookup(&change->rd)) {