summaryrefslogtreecommitdiffstats
path: root/isisd/isis_adjacency.h
diff options
context:
space:
mode:
authorOlivier Dugeon <olivier.dugeon@orange.com>2021-06-30 17:23:56 +0200
committerOlivier Dugeon <olivier.dugeon@orange.com>2021-11-30 15:22:28 +0100
commit173f8887cc3716985bfe4b84bdf2228194716f7d (patch)
tree6bf71295b47e814980e8620feba04e6950d7ed18 /isisd/isis_adjacency.h
parentMerge pull request #10146 from ton31337/fix/acl_bmp (diff)
downloadfrr-173f8887cc3716985bfe4b84bdf2228194716f7d.tar.xz
frr-173f8887cc3716985bfe4b84bdf2228194716f7d.zip
isisd: Add support for RFC6119 (IPv6 TE in IS-IS)
- Add advertisement of Global IPv6 address in IIH pdu - Add new CLI to set IPv6 Router ID - Add advertisement of IPv6 Router ID - Correctly advertise IPv6 local and neighbor addresses in Extended IS and MT Reachability TLVs - Correct output of Neighbor IPv6 address in 'show isis database detail' - Manage IPv6 addresses advertisement and corresponiding Adjacency SID when IS-IS is not using Multi-Topology by introducing a new ISIS_MT_DISABLE value for mtid (== 4096 i.e. first reserved flag set to 1) Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Diffstat (limited to 'isisd/isis_adjacency.h')
-rw-r--r--isisd/isis_adjacency.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/isisd/isis_adjacency.h b/isisd/isis_adjacency.h
index 4aa553e30..af70775a8 100644
--- a/isisd/isis_adjacency.h
+++ b/isisd/isis_adjacency.h
@@ -88,8 +88,10 @@ struct isis_adjacency {
struct in_addr *ipv4_addresses;
unsigned int ipv4_address_count;
struct in_addr router_address;
- struct in6_addr *ipv6_addresses;
- unsigned int ipv6_address_count;
+ struct in6_addr *ll_ipv6_addrs; /* Link local IPv6 neighbor address */
+ unsigned int ll_ipv6_count;
+ struct in6_addr *global_ipv6_addrs; /* Global IPv6 neighbor address */
+ unsigned int global_ipv6_count;
struct in6_addr router_address6;
uint8_t prio[ISIS_LEVELS]; /* priorityOfNeighbour for DIS */
int circuit_t; /* from hello PDU hdr */
@@ -127,9 +129,11 @@ void isis_adj_process_threeway(struct isis_adjacency *adj,
enum isis_adj_usage adj_usage);
DECLARE_HOOK(isis_adj_state_change_hook, (struct isis_adjacency *adj), (adj));
DECLARE_HOOK(isis_adj_ip_enabled_hook,
- (struct isis_adjacency *adj, int family), (adj, family));
+ (struct isis_adjacency * adj, int family, bool global),
+ (adj, family, global));
DECLARE_HOOK(isis_adj_ip_disabled_hook,
- (struct isis_adjacency *adj, int family), (adj, family));
+ (struct isis_adjacency * adj, int family, bool global),
+ (adj, family, global));
void isis_log_adj_change(struct isis_adjacency *adj,
enum isis_adj_state old_state,
enum isis_adj_state new_state, const char *reason);