Re: bgpd kroute_node cleanup

2022-06-22 Thread Theo Buehler
On Wed, Jun 22, 2022 at 06:17:30PM +0200, Claudio Jeker wrote:
> Diff is huge but mostly mechanical. Remove kroute_node, kroute6_node and
> use struct kroute and kroute6 directly. Also do a similar dance for
> struct knexthop_node.

Went over it three times carefully and can't spot anything wrong.

ok



bgpd kroute_node cleanup

2022-06-22 Thread Claudio Jeker
Diff is huge but mostly mechanical. Remove kroute_node, kroute6_node and
use struct kroute and kroute6 directly. Also do a similar dance for
struct knexthop_node.

I left kredist_node and kif_node for now since this diff is already large
enough.
-- 
:wq Claudio

Index: bgpd.h
===
RCS file: /cvs/src/usr.sbin/bgpd/bgpd.h,v
retrieving revision 1.435
diff -u -p -r1.435 bgpd.h
--- bgpd.h  22 Jun 2022 15:24:58 -  1.435
+++ bgpd.h  22 Jun 2022 15:25:15 -
@@ -656,13 +656,13 @@ enum suberr_rrefresh {
ERR_RR_INV_LEN = 1
 };
 
-struct kroute_node;
-struct kroute6_node;
-struct knexthop_node;
+struct kroute;
+struct kroute6;
+struct knexthop;
 struct kredist_node;
-RB_HEAD(kroute_tree, kroute_node);
-RB_HEAD(kroute6_tree, kroute6_node);
-RB_HEAD(knexthop_tree, knexthop_node);
+RB_HEAD(kroute_tree, kroute);
+RB_HEAD(kroute6_tree, kroute6);
+RB_HEAD(knexthop_tree, knexthop);
 RB_HEAD(kredist_tree, kredist_node);
 
 struct ktable {
Index: kroute.c
===
RCS file: /cvs/src/usr.sbin/bgpd/kroute.c,v
retrieving revision 1.264
diff -u -p -r1.264 kroute.c
--- kroute.c22 Jun 2022 15:24:58 -  1.264
+++ kroute.c22 Jun 2022 16:09:09 -
@@ -55,41 +55,33 @@ struct {
 } kr_state;
 
 struct kroute {
-   struct in_addr  prefix;
-   struct in_addr  nexthop;
-   uint32_tmplslabel;
-   uint16_tflags;
-   uint16_tlabelid;
-   u_short ifindex;
-   uint8_t prefixlen;
-   uint8_t priority;
+   RB_ENTRY(kroute) entry;
+   struct kroute   *next;
+   struct in_addr   prefix;
+   struct in_addr   nexthop;
+   uint32_t mplslabel;
+   uint16_t flags;
+   uint16_t labelid;
+   u_short  ifindex;
+   uint8_t  prefixlen;
+   uint8_t  priority;
 };
 
 struct kroute6 {
-   struct in6_addr prefix;
-   struct in6_addr nexthop;
-   uint32_tmplslabel;
-   uint16_tflags;
-   uint16_tlabelid;
-   u_short ifindex;
-   uint8_t prefixlen;
-   uint8_t priority;
-};
-
-struct kroute_node {
-   RB_ENTRY(kroute_node)entry;
-   struct krouter;
-   struct kroute_node  *next;
-};
-
-struct kroute6_node {
-   RB_ENTRY(kroute6_node)   entry;
-   struct kroute6   r;
-   struct kroute6_node *next;
+   RB_ENTRY(kroute6)entry;
+   struct kroute6  *next;
+   struct in6_addr  prefix;
+   struct in6_addr  nexthop;
+   uint32_t mplslabel;
+   uint16_t flags;
+   uint16_t labelid;
+   u_short  ifindex;
+   uint8_t  prefixlen;
+   uint8_t  priority;
 };
 
-struct knexthop_node {
-   RB_ENTRY(knexthop_node)  entry;
+struct knexthop {
+   RB_ENTRY(knexthop)   entry;
struct bgpd_addr nexthop;
void*kroute;
 };
@@ -104,12 +96,12 @@ struct kredist_node {
 
 struct kif_kr {
LIST_ENTRY(kif_kr)   entry;
-   struct kroute_node  *kr;
+   struct kroute   *kr;
 };
 
 struct kif_kr6 {
LIST_ENTRY(kif_kr6)  entry;
-   struct kroute6_node *kr;
+   struct kroute6  *kr;
 };
 
 LIST_HEAD(kif_kr_head, kif_kr);
@@ -143,57 +135,50 @@ void  kr_redistribute(int, struct ktable 
 void   kr_redistribute6(int, struct ktable *, struct kroute6 *);
 struct kroute_full *kr_tofull(struct kroute *);
 struct kroute_full *kr6_tofull(struct kroute6 *);
-intkroute_compare(struct kroute_node *, struct kroute_node *);
-intkroute6_compare(struct kroute6_node *, struct kroute6_node *);
-intknexthop_compare(struct knexthop_node *, struct knexthop_node *);
+intkroute_compare(struct kroute *, struct kroute *);
+intkroute6_compare(struct kroute6 *, struct kroute6 *);
+intknexthop_compare(struct knexthop *, struct knexthop *);
 intkredist_compare(struct kredist_node *, struct kredist_node *);
 intkif_compare(struct kif_node *, struct kif_node *);
 
-struct kroute_node *kroute_find(struct ktable *, const struct bgpd_addr *,
+struct kroute  *kroute_find(struct ktable *, const struct bgpd_addr *,
uint8_t, uint8_t);
-struct kroute_node *kroute_matchgw(struct kroute_node *,
-   struct bgpd_addr *);
-int kroute_insert(struct ktable *, struct kroute_node *);
-int kroute_remove(struct ktable *, struct kroute_node *);
-voidkroute_clear(struct ktable *);
+struct kroute  *kroute_matchgw(struct kroute *, struct bgpd_addr *);
+int