diff options
Diffstat (limited to 'lib/srv6.h')
| -rw-r--r-- | lib/srv6.h | 38 | 
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/srv6.h b/lib/srv6.h index 9a041e3d85..7e4fb97ad1 100644 --- a/lib/srv6.h +++ b/lib/srv6.h @@ -22,6 +22,8 @@  #define SRV6_SID_FORMAT_NAME_SIZE 512 +#define DEFAULT_SRV6_IFNAME "sr0" +  #ifdef __cplusplus  extern "C" {  #endif @@ -186,6 +188,42 @@ enum srv6_endpoint_behavior_codepoint {  	SRV6_ENDPOINT_BEHAVIOR_OPAQUE           = 0xFFFF,  }; +/* + * Convert SRv6 endpoint behavior codepoints to human-friendly string. + */ +static inline const char * +srv6_endpoint_behavior_codepoint2str(enum srv6_endpoint_behavior_codepoint behavior) +{ +	switch (behavior) { +	case SRV6_ENDPOINT_BEHAVIOR_RESERVED: +		return "Reserved"; +	case SRV6_ENDPOINT_BEHAVIOR_END: +		return "End"; +	case SRV6_ENDPOINT_BEHAVIOR_END_X: +		return "End.X"; +	case SRV6_ENDPOINT_BEHAVIOR_END_DT6: +		return "End.DT6"; +	case SRV6_ENDPOINT_BEHAVIOR_END_DT4: +		return "End.DT4"; +	case SRV6_ENDPOINT_BEHAVIOR_END_DT46: +		return "End.DT46"; +	case SRV6_ENDPOINT_BEHAVIOR_END_NEXT_CSID: +		return "uN"; +	case SRV6_ENDPOINT_BEHAVIOR_END_X_NEXT_CSID: +		return "uA"; +	case SRV6_ENDPOINT_BEHAVIOR_END_DT6_USID: +		return "uDT6"; +	case SRV6_ENDPOINT_BEHAVIOR_END_DT4_USID: +		return "uDT4"; +	case SRV6_ENDPOINT_BEHAVIOR_END_DT46_USID: +		return "uDT46"; +	case SRV6_ENDPOINT_BEHAVIOR_OPAQUE: +		return "Opaque"; +	} + +	return "Unspec"; +} +  struct nexthop_srv6 {  	/* SRv6 localsid info for Endpoint-behaviour */  	enum seg6local_action_t seg6local_action;  | 
