summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_advertise.h
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_advertise.h')
-rw-r--r--bgpd/bgp_advertise.h44
1 files changed, 25 insertions, 19 deletions
diff --git a/bgpd/bgp_advertise.h b/bgpd/bgp_advertise.h
index 918e1216..ca92238a 100644
--- a/bgpd/bgp_advertise.h
+++ b/bgpd/bgp_advertise.h
@@ -81,31 +81,37 @@ struct bgp_advertise
/* BGP adjacency out. */
struct bgp_adj_out
{
- /* Lined list pointer. */
- struct bgp_adj_out *next;
- struct bgp_adj_out *prev;
+ /* Linked list pointer. */
+ struct bgp_node* rn ;
+ struct bgp_adj_out *adj_next;
+ struct bgp_adj_out *adj_prev;
- /* Advertised peer. */
+ /* Advertised peer. */
struct peer *peer;
+ struct bgp_adj_out* route_next ;
+ struct bgp_adj_out* route_prev ;
- /* Advertised attribute. */
+ /* Advertised attribute. */
struct attr *attr;
- /* Advertisement information. */
+ /* Advertisement information. */
struct bgp_advertise *adv;
};
/* BGP adjacency in. */
struct bgp_adj_in
{
- /* Linked list pointer. */
- struct bgp_adj_in *next;
- struct bgp_adj_in *prev;
+ /* Linked list pointer. */
+ struct bgp_node* rn ;
+ struct bgp_adj_in *adj_next;
+ struct bgp_adj_in *adj_prev;
- /* Received peer. */
+ /* Received peer. */
struct peer *peer;
+ struct bgp_adj_in* route_next ;
+ struct bgp_adj_in* route_prev ;
- /* Received attribute. */
+ /* Received attribute. */
struct attr *attr;
};
@@ -183,21 +189,21 @@ bgp_advertise_fifo_del(bgp_advertise adv)
/* BGP adjacency linked list. */
#define BGP_INFO_ADD(N,A,TYPE) \
do { \
- (A)->prev = NULL; \
- (A)->next = (N)->TYPE; \
+ (A)->adj_prev = NULL; \
+ (A)->adj_next = (N)->TYPE; \
if ((N)->TYPE) \
- (N)->TYPE->prev = (A); \
+ (N)->TYPE->adj_prev = (A); \
(N)->TYPE = (A); \
} while (0)
#define BGP_INFO_DEL(N,A,TYPE) \
do { \
- if ((A)->next) \
- (A)->next->prev = (A)->prev; \
- if ((A)->prev) \
- (A)->prev->next = (A)->next; \
+ if ((A)->adj_next) \
+ (A)->adj_next->adj_prev = (A)->adj_prev; \
+ if ((A)->adj_prev) \
+ (A)->adj_prev->adj_next = (A)->adj_next; \
else \
- (N)->TYPE = (A)->next; \
+ (N)->TYPE = (A)->adj_next; \
} while (0)
#define BGP_ADJ_IN_ADD(N,A) BGP_INFO_ADD(N,A,adj_in)