15 #ifndef included_vnet_mpls_gre_h 16 #define included_vnet_mpls_gre_h 28 }) ip4_gre_and_mpls_header_t;
33 #define mpls_error(n,s) MPLS_ERROR_##n, 135 #define MPLS_GRE_OUTPUT_NEXT_LOOKUP 1 136 #define MPLS_GRE_OUTPUT_NEXT_DROP VNET_INTERFACE_TX_NEXT_DROP 142 u32 dst_address,
u32 *labelp);
148 u32 inner_fib_id,
u32 outer_fib_id,
149 u32 * tunnel_intfc_sw_if_index,
158 u32 * tunnel_sw_if_index,
168 u32 label_host_byte_order,
169 int s_bit,
int next_index,
int is_add);
172 u32 *labels_host_byte_order,
173 u32 policy_tunnel_index,
174 int no_dst_hash,
u32 * indexp,
int is_add);
178 u32 policy_tunnel_index);
199 #define foreach_mpls_input_next \ 200 _(DROP, "error-drop") \ 201 _(IP4_INPUT, "ip4-input") \ 202 _(L2_OUTPUT, "l2-output") 205 #define _(s,n) MPLS_INPUT_NEXT_##s, int mpls_label_from_fib_id_and_dest(mpls_main_t *gm, u32 fib_id, u32 dst_address, u32 *labelp)
format_function_t format_mpls_header_with_length
u32 * free_gre_sw_if_indices
u8 * format_mpls_eth_tx_trace(u8 *s, va_list *args)
format_function_t format_mpls_header
format_function_t format_mpls_eth_header_with_length
ip4_address_t intfc_address
int mpls_label_cmp(void *a1, void *a2)
format_function_t format_mpls_protocol
struct _vlib_node_registration vlib_node_registration_t
int vnet_mpls_gre_add_del_tunnel(ip4_address_t *src, ip4_address_t *dst, ip4_address_t *intfc, u32 mask_width, u32 inner_fib_id, u32 outer_fib_id, u32 *tunnel_intfc_sw_if_index, u8 l2_only, u8 is_add)
unformat_function_t unformat_pg_mpls_gre_header
uword * mpls_encap_by_fib_and_dest
struct _vnet_device_class vnet_device_class_t
#define foreach_mpls_input_next
mpls_gre_tunnel_t * gre_tunnels
typedef CLIB_PACKED(struct{ip4_header_t ip4;gre_header_t gre;mpls_unicast_header_t labels[0];}) ip4_gre_and_mpls_header_t
ip4_address_t intfc_address
format_function_t format_mpls_gre_header_with_length
vlib_node_registration_t mpls_policy_encap_node
(constructor) VLIB_REGISTER_NODE (mpls_policy_encap_node)
int mpls_fib_reset_labels(u32 fib_id)
vlib_node_registration_t mpls_input_node
(constructor) VLIB_REGISTER_NODE (mpls_input_node)
vnet_device_class_t mpls_gre_device_class
u32 * free_eth_sw_if_indices
int mpls_fib_index_cmp(void *a1, void *a2)
unformat_function_t unformat_mpls_protocol_net_byte_order
unformat_function_t unformat_mpls_header
unformat_function_t unformat_mpls_protocol_host_byte_order
unformat_function_t unformat_pg_mpls_header
u8 * format_mpls_gre_header(u8 *s, va_list *args)
u32 ip4_classify_mpls_policy_encap_next_index
mpls_eth_tunnel_t * eth_tunnels
u32 ip6_classify_mpls_policy_encap_next_index
int vnet_mpls_ethernet_add_del_tunnel(u8 *dst, ip4_address_t *intfc, u32 mask_width, u32 inner_fib_id, u32 tx_sw_if_index, u32 *tunnel_sw_if_index, u8 l2_only, u8 is_add)
int vnet_mpls_gre_delete_fib_tunnels(u32 fib_id)
uword * mpls_decap_by_rx_fib_and_label
u8 * format_mpls_gre_tx_trace(u8 *s, va_list *args)
int vnet_mpls_add_del_decap(u32 rx_fib_id, u32 tx_fib_id, u32 label_host_byte_order, int s_bit, int next_index, int is_add)
format_function_t format_mpls_unicast_label
vnet_hw_interface_class_t mpls_gre_hw_interface_class
struct _vnet_hw_interface_class vnet_hw_interface_class_t
unformat_function_t unformat_mpls_gre_header
int vnet_mpls_add_del_encap(ip4_address_t *dest, u32 fib_id, u32 *labels_host_byte_order, u32 policy_tunnel_index, int no_dst_hash, u32 *indexp, int is_add)
int vnet_mpls_policy_tunnel_add_rewrite(mpls_main_t *mm, mpls_encap_t *e, u32 policy_tunnel_index)
mpls_encap_t * mpls_encap_by_fib_and_dest(mpls_main_t *mm, u32 rx_fib, u32 dst_address)
unformat_function_t unformat_mpls_label_net_byte_order
format_function_t format_mpls_encap_index
mpls_unicast_header_t * labels
int mpls_dest_cmp(void *a1, void *a2)