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 kroute_insert(str