summaryrefslogtreecommitdiff
path: root/lib/srv6.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/srv6.h')
-rw-r--r--lib/srv6.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/lib/srv6.h b/lib/srv6.h
index 011705504e..467f02a3c9 100644
--- a/lib/srv6.h
+++ b/lib/srv6.h
@@ -176,12 +176,20 @@ struct srv6_locator_chunk {
enum srv6_endpoint_behavior_codepoint {
SRV6_ENDPOINT_BEHAVIOR_RESERVED = 0x0000,
SRV6_ENDPOINT_BEHAVIOR_END = 0x0001,
+ SRV6_ENDPOINT_BEHAVIOR_END_PSP = 0x0002,
SRV6_ENDPOINT_BEHAVIOR_END_X = 0x0005,
+ SRV6_ENDPOINT_BEHAVIOR_END_X_PSP = 0x0006,
SRV6_ENDPOINT_BEHAVIOR_END_DT6 = 0x0012,
SRV6_ENDPOINT_BEHAVIOR_END_DT4 = 0x0013,
SRV6_ENDPOINT_BEHAVIOR_END_DT46 = 0x0014,
+ SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD = 0x001D,
+ SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD = 0x0021,
SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID = 0x002B,
- SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID = 0x002C,
+ SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID = 0x0034,
+ SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP = 0x002C,
+ SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD = 0x0030,
+ SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP = 0x0035,
+ SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD = 0x0039,
SRV6_ENDPOINT_BEHAVIOR_END_DT6_USID = 0x003E,
SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID = 0x003F,
SRV6_ENDPOINT_BEHAVIOR_END_DT46_USID = 0x0040,
@@ -199,8 +207,16 @@ srv6_endpoint_behavior_codepoint2str(enum srv6_endpoint_behavior_codepoint behav
return "Reserved";
case SRV6_ENDPOINT_BEHAVIOR_END:
return "End";
+ case SRV6_ENDPOINT_BEHAVIOR_END_PSP:
+ return "End PSP";
+ case SRV6_ENDPOINT_BEHAVIOR_END_PSP_USD:
+ return "End PSP/USD";
case SRV6_ENDPOINT_BEHAVIOR_END_X:
return "End.X";
+ case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP:
+ return "End.X PSP";
+ case SRV6_ENDPOINT_BEHAVIOR_END_X_PSP_USD:
+ return "End.X PSP/USD";
case SRV6_ENDPOINT_BEHAVIOR_END_DT6:
return "End.DT6";
case SRV6_ENDPOINT_BEHAVIOR_END_DT4:
@@ -209,8 +225,16 @@ srv6_endpoint_behavior_codepoint2str(enum srv6_endpoint_behavior_codepoint behav
return "End.DT46";
case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID:
return "uN";
+ case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP:
+ return "uN PSP";
+ case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID_PSP_USD:
+ return "uN PSP/USD";
case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID:
return "uA";
+ case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP:
+ return "uA PSP";
+ case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID_PSP_USD:
+ return "uA PSP/USD";
case SRV6_ENDPOINT_BEHAVIOR_END_DT6_USID:
return "uDT6";
case SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID:
@@ -297,6 +321,7 @@ struct srv6_sid_ctx {
struct in_addr nh4;
struct in6_addr nh6;
vrf_id_t vrf_id;
+ ifindex_t ifindex;
};
static inline const char *seg6_mode2str(enum seg6_mode_t mode)