Remi noticed that ospfd does no longer see new interfaces. The priority filter should only work on routing messages that have a rtm_priority.
So these are out: RTM_DELADDR RTM_NEWADDR (struct ifa_msghdr) RTM_IFINFO (struct if_msghdr) RTM_IFANNOUNCE (struct if_announcemsghdr) RTM_BFD (struct bfd_msghdr) and all others (struct rt_msghdr) are ok and handled in the default case further down. Move the rop_priority check there. ok? diff --git sys/net/rtsock.c sys/net/rtsock.c index afab5d72505..4d3442d0924 100644 --- sys/net/rtsock.c +++ sys/net/rtsock.c @@ -465,9 +465,6 @@ next: if (rtm->rtm_type != RTM_DESYNC && rop->rop_msgfilter != 0 && !(rop->rop_msgfilter & (1 << rtm->rtm_type))) goto next; - if (rop->rop_priority != 0 && - rop->rop_priority < rtm->rtm_priority) - goto next; switch (rtm->rtm_type) { case RTM_IFANNOUNCE: case RTM_DESYNC: @@ -483,6 +480,9 @@ next: goto next; break; default: + if (rop->rop_priority != 0 && + rop->rop_priority < rtm->rtm_priority) + goto next; /* check against rtable id */ if (rop->rop_rtableid != RTABLE_ANY && rop->rop_rtableid != rtm->rtm_tableid)