summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_aspath.h
diff options
context:
space:
mode:
authorNaveen Thanikachalam <nthanikachal@vmware.com>2019-02-06 14:44:20 +0100
committerNaveen Thanikachalam <nthanikachal@vmware.com>2019-03-01 05:22:30 +0100
commite00d800877ef7fc20b1887c2883e855dedcbb442 (patch)
treef5aabaa5509eca6689dcf83e1b12fad1d5097cc2 /bgpd/bgp_aspath.h
parentMerge pull request #3602 from donaldsharp/mlag_debug (diff)
downloadfrr-e00d800877ef7fc20b1887c2883e855dedcbb442.tar.xz
frr-e00d800877ef7fc20b1887c2883e855dedcbb442.zip
bgpd: Code to handle BGP aggregate's as-path.
With this commit: 1) 'struct bgp_aggregate' is moved to bgp_route.h from bgp_route.c 2) Hashes to accommodate the as-path, communities, extended-communities and large-communities attributes of all the routes aggregated by an aggregate route is introduced in 'struct bgp_aggregate'. 3) Place-holders for the aggregate route's as-path, communities, extended-communities and large-communities attributes are introduced in 'struct bgp_aggregate'. 4) The code to manage the as-path of the routes that are aggregatable under a configured aggregate-address is introduced. 5) The code to compute the aggregate-route's as-path is introduced. Signed-off-by: NaveenThanikachalam <nthanikachal@vmware.com>
Diffstat (limited to 'bgpd/bgp_aspath.h')
-rw-r--r--bgpd/bgp_aspath.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/bgpd/bgp_aspath.h b/bgpd/bgp_aspath.h
index 9c9c687a6..be5725c1a 100644
--- a/bgpd/bgp_aspath.h
+++ b/bgpd/bgp_aspath.h
@@ -22,6 +22,7 @@
#define _QUAGGA_BGP_ASPATH_H
#include "lib/json.h"
+#include "bgpd/bgp_route.h"
/* AS path segment type. */
#define AS_SET 1
@@ -130,4 +131,10 @@ extern unsigned int aspath_has_as4(struct aspath *);
/* For SNMP BGP4PATHATTRASPATHSEGMENT, might be useful for debug */
extern uint8_t *aspath_snmp_pathseg(struct aspath *, size_t *);
+extern void bgp_compute_aggregate_aspath(struct bgp_aggregate *aggregate,
+ struct aspath *aspath);
+extern void bgp_remove_aspath_from_aggregate(struct bgp_aggregate *aggregate,
+ struct aspath *aspath);
+extern void bgp_aggr_aspath_remove(void *arg);
+
#endif /* _QUAGGA_BGP_ASPATH_H */