summaryrefslogtreecommitdiff
path: root/lib/srv6.h
diff options
context:
space:
mode:
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>2023-03-20 18:58:49 +0100
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>2023-09-11 17:35:01 +0200
commitbf386acb93a1ceb8567734489378069c0732cd75 (patch)
tree27f26ddf8f4b4de4dd93be674679eb54c4fe52ce /lib/srv6.h
parent7c27ab79ecf6727920bb17cef91ec0ede7396a49 (diff)
lib: Add new enum for seg6local flavor operations
The RFC 8986 defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization. In addition, the RFC 8986 introduces the concept of "flavors", additional operations that can modify or extend the existing SRv6 behaviors. This commit adds a new enum type `seg6local_flavor_op` to represent the SRv6 flavors operations. Currently we define the following flavor operations: - PSP (defined in RFC 8986 section #4.16.1) - USP (defined in RFC 8986 section #4.16.2) - USD (defined in RFC 8986 section #4.16.3) - NEXT-C-SID (defined in draft-ietf-spring-srv6-srh-compression-03 #4.1) Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
Diffstat (limited to 'lib/srv6.h')
-rw-r--r--lib/srv6.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/srv6.h b/lib/srv6.h
index f7c24e8923..4f004bf5df 100644
--- a/lib/srv6.h
+++ b/lib/srv6.h
@@ -50,6 +50,20 @@ enum seg6local_action_t {
ZEBRA_SEG6_LOCAL_ACTION_END_DT46 = 16,
};
+/* Flavor operations for SRv6 End* Behaviors */
+enum seg6local_flavor_op {
+ ZEBRA_SEG6_LOCAL_FLV_OP_UNSPEC = 0,
+ /* PSP Flavor as per RFC 8986 section #4.16.1 */
+ ZEBRA_SEG6_LOCAL_FLV_OP_PSP = 1,
+ /* USP Flavor as per RFC 8986 section #4.16.2 */
+ ZEBRA_SEG6_LOCAL_FLV_OP_USP = 2,
+ /* USD Flavor as per RFC 8986 section #4.16.3 */
+ ZEBRA_SEG6_LOCAL_FLV_OP_USD = 3,
+ /* NEXT-C-SID Flavor as per draft-ietf-spring-srv6-srh-compression-03
+ section 4.1 */
+ ZEBRA_SEG6_LOCAL_FLV_OP_NEXT_CSID = 4,
+};
+
struct seg6_segs {
size_t num_segs;
struct in6_addr segs[256];