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;
83 vl_api_sr_policy_add_reply_t *rmp;
111 vl_api_sr_policy_mod_reply_t *rmp;
143 vl_api_sr_policy_del_reply_t *rmp;
158 vl_api_sr_steering_add_del_reply_t *rmp;
189 #define vl_msg_name_crc_list 191 #undef vl_msg_name_crc_list 196 #define _(id,n,crc) vl_msg_api_add_msg_name_crc (am, #n "_" #crc, id); 197 foreach_vl_msg_name_crc_sr;
207 vl_msg_api_set_handlers(VL_API_##N, #n, \ 208 vl_api_##n##_t_handler, \ 210 vl_api_##n##_t_endian, \ 211 vl_api_##n##_t_print, \ 212 sizeof(vl_api_##n##_t), 1); 224 vl_api_sr_policy_add_t_endian,
235 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)
API main structure, used by both vpp and binary API clients.
#define BAD_SW_IF_INDEX_LABEL
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.
#define VALIDATE_SW_IF_INDEX(mp)
Segment Routing data structures definitions.