Skip to content

Commit

Permalink
isisd: Add SRv6 SID data structure
Browse files Browse the repository at this point in the history
Add `struct isis_srv6_sid` data structure to represent an SRv6 SID.

The struct has the following members:
* next: pointer to the next SID, used to build linked lists of SRv6 SIDs
* flags: SID flags
* behavior: the behavior bound to the SRv6 SID (as defined in RFC 8986)
* value: the SID value (i.e., an IPv6 address)
* locator: a backpointer to the parent locator from which the SID has
been allocated.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
  • Loading branch information
cscarpitta committed Sep 11, 2023
1 parent 70fba45 commit e047b39
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions isisd/isis_srv6.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,34 @@
#ifndef _FRR_ISIS_SRV6_H
#define _FRR_ISIS_SRV6_H

#include "lib/srv6.h"

/* Maximum SRv6 SID Depths supported by the router */
#define SRV6_MAX_SEG_LEFT 3
#define SRV6_MAX_END_POP 3
#define SRV6_MAX_H_ENCAPS 2
#define SRV6_MAX_END_D 5

/* SRv6 SID not bound to any adjacency */
struct isis_srv6_sid {
struct isis_srv6_sid *next;

/* SID flags */
uint8_t flags;

/* SID value */
struct in6_addr sid;

/* Endpoint behavior bound to the SID */
enum srv6_endpoint_behavior_codepoint behavior;

/* Parent SRv6 locator */
struct srv6_locator_chunk *locator;

/* Backpointer to IS-IS area */
struct isis_area *area;
};

/* Per-area IS-IS SRv6 Data Base (SRv6 DB) */
struct isis_srv6_db {

Expand Down

0 comments on commit e047b39

Please sign in to comment.