diff options
Diffstat (limited to 'src/vnet/srv6/sr_pt.h')
-rw-r--r-- | src/vnet/srv6/sr_pt.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/vnet/srv6/sr_pt.h b/src/vnet/srv6/sr_pt.h index 87fdb68a36e..cd70cd09ad2 100644 --- a/src/vnet/srv6/sr_pt.h +++ b/src/vnet/srv6/sr_pt.h @@ -11,6 +11,8 @@ #ifndef included_vnet_sr_pt_h #define included_vnet_sr_pt_h +#define IP6_HBH_PT_TYPE 50 + /*SR PT error codes*/ #define SR_PT_ERR_NOENT -1 /* No such entry*/ #define SR_PT_ERR_EXIST -2 /* Entry exists */ @@ -37,6 +39,11 @@ #define SR_PT_TTS_SHIFT_TEMPLATE_2 16 #define SR_PT_TTS_SHIFT_TEMPLATE_3 20 +/*PT node behaviors*/ +#define PT_BEHAVIOR_SRC 0 +#define PT_BEHAVIOR_MID 1 +#define PT_BEHAVIOR_SNK 2 + typedef struct { u32 iface; /**< Interface */ @@ -46,6 +53,17 @@ typedef struct u8 tts_template; /**< Interface TTS Template */ } sr_pt_iface_t; +typedef struct +{ + u16 oif_oil; + u8 tts; +} __clib_packed sr_pt_cmd_t; + +typedef struct +{ + sr_pt_cmd_t cmd_stack[12]; +} __clib_packed ip6_hop_by_hop_option_pt_t; + /** * @brief SR Path Tracing main datastructure */ @@ -60,6 +78,7 @@ typedef struct } sr_pt_main_t; extern sr_pt_main_t sr_pt_main; +extern vlib_node_registration_t sr_pt_node; extern int sr_pt_add_iface (u32 iface, u16 id, u8 ingress_load, u8 egress_load, u8 tts_template); extern int sr_pt_del_iface (u32 iface); |