32 #include <ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api_enum.h> 33 #include <ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api_types.h> 39 vl_api_vxlan_gpe_ioam_enable_reply_t *rmp;
59 vl_api_vxlan_gpe_ioam_disable_reply_t *rmp;
78 vl_api_vxlan_gpe_ioam_vni_enable_reply_t *rmp;
80 vxlan4_gpe_tunnel_key_t key4;
93 vni = clib_net_to_host_u32 (mp->
vni);
94 key4.vni = clib_host_to_net_u32 (vni << 8);
120 REPLY_MACRO (VL_API_VXLAN_GPE_IOAM_VNI_ENABLE_REPLY);
128 vl_api_vxlan_gpe_ioam_vni_enable_reply_t *rmp;
130 vxlan4_gpe_tunnel_key_t key4;
142 vni = clib_net_to_host_u32 (mp->
vni);
143 key4.vni = clib_host_to_net_u32 (vni << 8);
168 REPLY_MACRO (VL_API_VXLAN_GPE_IOAM_VNI_DISABLE_REPLY);
175 vl_api_vxlan_gpe_ioam_transit_enable_reply_t *rmp;
186 REPLY_MACRO (VL_API_VXLAN_GPE_IOAM_TRANSIT_ENABLE_REPLY);
193 vl_api_vxlan_gpe_ioam_transit_disable_reply_t *rmp;
202 REPLY_MACRO (VL_API_VXLAN_GPE_IOAM_TRANSIT_DISABLE_REPLY);
205 #include <ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api.c> 229 vxlan_gpe_decap_node =
vl_api_address_t dst_addr
clib_error_t * vxlan_gpe_ioam_enable(int has_trace_option, int has_pot_option, int has_ppc_option)
static void vl_api_vxlan_gpe_ioam_transit_disable_t_handler(vl_api_vxlan_gpe_ioam_transit_disable_t *mp)
Disable iOAM for VXLAN-GPE transit.
vnet_main_t * vnet_get_main(void)
vlib_main_t * vlib_main
State convenience vlib_main_t.
vlib_node_registration_t vxlan_gpe_decap_ioam_v4_node
(constructor) VLIB_REGISTER_NODE (vxlan_gpe_decap_ioam_v4_node)
iOAM for VxLAN-GPE disable
static f64 vlib_time_now(vlib_main_t *vm)
int vxlan_gpe_enable_disable_ioam_for_dest(vlib_main_t *vm, ip46_address_t dst_addr, u32 outer_fib_index, u8 is_ipv4, u8 is_add)
vxlan_gpe_ioam_sw_interface_t * sw_interfaces
clib_error_t * vxlan_gpe_ioam_clear(vxlan_gpe_tunnel_t *t, int has_trace_option, int has_pot_option, int has_ppc_option, u8 ipv6_set)
void vxlan_gpe_ioam_interface_init(void)
static uword vlib_node_add_next(vlib_main_t *vm, uword node, uword next_node)
iOAM Over VxLAN-GPE - Set iOAM transport for VxLAN-GPE
vlib_node_registration_t vxlan_gpe_encap_ioam_v4_node
(constructor) VLIB_REGISTER_NODE (vxlan_gpe_encap_ioam_v4_node)
#define clib_memcpy(d, s, n)
clib_error_t * vxlan_gpe_ioam_disable(int has_trace_option, int has_pot_option, int has_ppc_option)
#define VLIB_INIT_FUNCTION(x)
#define vec_new(T, N)
Create new vector of given type and length (unspecified alignment, no header).
int vxlan_gpe_ioam_disable_for_dest(vlib_main_t *vm, ip46_address_t dst_addr, u32 outer_fib_index, u8 ipv4_set)
static void vl_api_vxlan_gpe_ioam_vni_disable_t_handler(vl_api_vxlan_gpe_ioam_vni_disable_t *mp)
vxlan_gpe_ioam_main_t vxlan_gpe_ioam_main
Aggregate type for a prefix.
ip46_type_t ip_address_decode(const vl_api_address_t *in, ip46_address_t *out)
Decode/Encode for struct/union types.
Disable iOAM for a VNI (VXLAN-GPE)
Enable iOAM for a VXLAN-GPE transit.
#define hash_create_mem(elts, key_bytes, value_bytes)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
vlib_node_t * vlib_get_node_by_name(vlib_main_t *vm, u8 *name)
static void vl_api_vxlan_gpe_ioam_enable_t_handler(vl_api_vxlan_gpe_ioam_enable_t *mp)
Struct for VXLAN GPE tunnel.
vxlan_gpe_main_t vxlan_gpe_main
static void vl_api_vxlan_gpe_ioam_disable_t_handler(vl_api_vxlan_gpe_ioam_disable_t *mp)
vlib_node_registration_t vxlan_gpe_encap_node
(constructor) VLIB_REGISTER_NODE (vxlan_gpe_encap_node)
vl_api_mac_address_t dst_addr
clib_error_t * vxlan_gpe_ioam_set(vxlan_gpe_tunnel_t *t, int has_trace_option, int has_pot_option, int has_ppc_option, u8 ipv6_set)
static void setup_message_id_table(api_main_t *am)
vl_api_address_t dst_addr
Struct for VXLAN GPE node state.
#define clib_error_report(e)
vxlan_gpe_tunnel_t * tunnels
vector of encap tunnel instances
Enable iOAM for a VNI (VXLAN-GPE)
static clib_error_t * ioam_vxlan_gpe_init(vlib_main_t *vm)
uword * vxlan4_gpe_tunnel_by_key
lookup IPv4 VXLAN GPE tunnel by key
#define clib_error_get_code(err)
static void vl_api_vxlan_gpe_ioam_vni_enable_t_handler(vl_api_vxlan_gpe_ioam_vni_enable_t *mp)
#define hash_get_mem(h, key)
vnet_main_t * vnet_main
State convenience vnet_main_t.
static void vl_api_vxlan_gpe_ioam_transit_enable_t_handler(vl_api_vxlan_gpe_ioam_transit_enable_t *mp)
void vxlan_gpe_register_decap_protocol(u8 protocol_id, uword next_node_index)
static uword pool_elts(void *v)
Number of active elements in a pool.