The F_RTLABEL flag does nothing. So just remove it. Checking the rtlabelid != 0 is equivalent.
-- :wq Claudio Index: bgpd.h =================================================================== RCS file: /cvs/src/usr.sbin/bgpd/bgpd.h,v retrieving revision 1.426 diff -u -p -r1.426 bgpd.h --- bgpd.h 5 Jun 2022 12:43:13 -0000 1.426 +++ bgpd.h 7 Jun 2022 15:04:14 -0000 @@ -90,7 +90,6 @@ #define F_CTL_ADJ_IN 0x2000 /* only set on requests */ #define F_CTL_ADJ_OUT 0x4000 /* only set on requests */ #define F_CTL_BEST 0x8000 -#define F_RTLABEL 0x10000 #define F_CTL_SSV 0x20000 /* only used by bgpctl */ #define F_CTL_INVALID 0x40000 /* only set on requests */ #define F_CTL_OVS_VALID 0x80000 Index: kroute.c =================================================================== RCS file: /cvs/src/usr.sbin/bgpd/kroute.c,v retrieving revision 1.248 diff -u -p -r1.248 kroute.c --- kroute.c 5 Jun 2022 12:43:13 -0000 1.248 +++ kroute.c 7 Jun 2022 15:05:00 -0000 @@ -3268,7 +3268,6 @@ fetchtable(struct ktable *kt) kr->r.labelid = 0; if ((label = (struct sockaddr_rtlabel *) rti_info[RTAX_LABEL]) != NULL) { - kr->r.flags |= F_RTLABEL; kr->r.labelid = rtlabel_name2id(label->sr_label); } @@ -3309,7 +3308,6 @@ fetchtable(struct ktable *kt) kr6->r.labelid = 0; if ((label = (struct sockaddr_rtlabel *) rti_info[RTAX_LABEL]) != NULL) { - kr6->r.flags |= F_RTLABEL; kr6->r.labelid = rtlabel_name2id(label->sr_label); } @@ -3702,15 +3700,12 @@ dispatch_rtmsg_addr(struct rt_msghdr *rt rtlabel_name2id(label->sr_label); if (kr->r.labelid != new_labelid) { rtlabel_unref(kr->r.labelid); - kr->r.labelid = 0; - flags |= F_RTLABEL; kr->r.labelid = new_labelid; rtlabel_changed = 1; } } else if (kr->r.labelid && label == NULL) { rtlabel_unref(kr->r.labelid); kr->r.labelid = 0; - flags &= ~F_RTLABEL; rtlabel_changed = 1; } @@ -3760,7 +3755,6 @@ add4: kr->r.priority = prio; if (label) { - kr->r.flags |= F_RTLABEL; kr->r.labelid = rtlabel_name2id(label->sr_label); } @@ -3809,14 +3803,12 @@ add4: if (kr6->r.labelid != new_labelid) { rtlabel_unref(kr6->r.labelid); kr6->r.labelid = 0; - flags |= F_RTLABEL; kr6->r.labelid = new_labelid; rtlabel_changed = 1; } } else if (kr6->r.labelid && label == NULL) { rtlabel_unref(kr6->r.labelid); kr6->r.labelid = 0; - flags &= ~F_RTLABEL; rtlabel_changed = 1; } @@ -3870,7 +3862,6 @@ add6: kr6->r.priority = prio; if (label) { - kr6->r.flags |= F_RTLABEL; kr6->r.labelid = rtlabel_name2id(label->sr_label); }