39 #define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__) 46 #define foreach_vpe_api_msg \ 47 _(SR_LOCALSID_ADD_DEL, sr_localsid_add_del) \ 48 _(SR_POLICY_DEL, sr_policy_del) \ 49 _(SR_STEERING_ADD_DEL, sr_steering_add_del) 56 vl_api_sr_localsid_add_del_reply_t *rmp;
78 vl_api_sr_policy_add_reply_t *rmp;
106 vl_api_sr_policy_mod_reply_t *rmp;
138 vl_api_sr_policy_del_reply_t *rmp;
153 vl_api_sr_steering_add_del_reply_t *rmp;
179 #define vl_msg_name_crc_list 181 #undef vl_msg_name_crc_list 186 #define _(id,n,crc) vl_msg_api_add_msg_name_crc (am, #n "_" #crc, id); 187 foreach_vl_msg_name_crc_sr;
197 vl_msg_api_set_handlers(VL_API_##N, #n, \ 198 vl_api_##n##_t_handler, \ 200 vl_api_##n##_t_endian, \ 201 vl_api_##n##_t_print, \ 202 sizeof(vl_api_##n##_t), 1); 214 vl_api_sr_policy_add_t_endian,
225 vl_api_sr_policy_mod_t_endian,
sll srl srl sll sra u16x4 i
int sr_policy_add(ip6_address_t *bsid, ip6_address_t *segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap)
Create a new SR policy.
int sr_policy_mod(ip6_address_t *bsid, u32 index, u32 fib_table, u8 operation, ip6_address_t *segments, u32 sl_index, u32 weight)
Modify an existing SR policy.
static void vl_api_sr_policy_add_t_handler(vl_api_sr_policy_add_t *mp)
#define vec_add2(V, P, N)
Add N elements to end of vector V, return pointer to new elements in P.
int sr_cli_localsid(char is_del, ip6_address_t *localsid_addr, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t *nh_addr, void *ls_plugin_mem)
SR localsid add/del.
static void vl_api_sr_steering_add_del_t_handler(vl_api_sr_steering_add_del_t *mp)
static void * vl_api_sr_policy_add_t_print(vl_api_sr_policy_add_t *mp, void *handle)
static void vl_api_sr_policy_mod_t_handler(vl_api_sr_policy_mod_t *mp)
static void setup_message_id_table(api_main_t *am)
VLIB_API_INIT_FUNCTION(sr_api_hookup)
void vl_msg_api_set_handlers(int msg_id, char *msg_name, void *handler, void *cleanup, void *endian, void *print, int msg_size, int traced)
#define clib_memcpy(a, b, c)
void vl_noop_handler(void *mp)
IPv6 SR steering add/del.
#define foreach_vpe_api_msg
static void * vl_api_sr_policy_mod_t_print(vl_api_sr_policy_mod_t *mp, void *handle)
static void vl_api_sr_policy_del_t_handler(vl_api_sr_policy_del_t *mp)
static clib_error_t * sr_api_hookup(vlib_main_t *vm)
int sr_steering_policy(int is_del, ip6_address_t *bsid, u32 sr_policy_index, u32 table_id, ip46_address_t *prefix, u32 mask_width, u32 sw_if_index, u8 traffic_type)
Steer traffic L2 and L3 traffic through a given SR policy.
IPv6 SR policy modification.
int sr_policy_del(ip6_address_t *bsid, u32 index)
Delete a SR policy.
static void vl_api_sr_localsid_add_del_t_handler(vl_api_sr_localsid_add_del_t *mp)
IPv6 SR LocalSID add/del request.
Segment Routing data structures definitions.