diff options
Diffstat (limited to 'vnet/vnet/mpls/mpls.h')
-rw-r--r-- | vnet/vnet/mpls/mpls.h | 96 |
1 files changed, 4 insertions, 92 deletions
diff --git a/vnet/vnet/mpls/mpls.h b/vnet/vnet/mpls/mpls.h index 35755333e1d..da663b0b788 100644 --- a/vnet/vnet/mpls/mpls.h +++ b/vnet/vnet/mpls/mpls.h @@ -12,11 +12,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef included_vnet_mpls_gre_h -#define included_vnet_mpls_gre_h +#ifndef included_vnet_mpls_h +#define included_vnet_mpls_h #include <vnet/vnet.h> -#include <vnet/gre/gre.h> #include <vnet/mpls/packet.h> #include <vnet/mpls/mpls_types.h> #include <vnet/ip/ip4_packet.h> @@ -24,43 +23,17 @@ #include <vnet/fib/fib_node.h> #include <vnet/adj/adj.h> -typedef CLIB_PACKED (struct { - ip4_header_t ip4; /* 20 bytes */ - gre_header_t gre; /* 4 bytes */ - mpls_unicast_header_t labels[0]; /* 4 bytes each */ -}) ip4_gre_and_mpls_header_t; - -extern vnet_hw_interface_class_t mpls_gre_hw_interface_class; - typedef enum { #define mpls_error(n,s) MPLS_ERROR_##n, #include <vnet/mpls/error.def> #undef mpls_error MPLS_N_ERROR, -} mpls_gre_error_t; +} mpls_error_t; /* * No protocol info, MPLS labels don't have a next-header field * presumably the label field tells all... */ - -typedef struct { - fib_node_t mgt_node; - ip4_address_t tunnel_src; - ip4_address_t tunnel_dst; - ip4_address_t intfc_address; - u32 mask_width; - u32 inner_fib_index; - u32 outer_fib_index; - u32 encap_index; - u32 hw_if_index; /* L2 x-connect capable tunnel intfc */ - u8 * rewrite_data; - u8 l2_only; - fib_node_index_t fei; /* FIB Entry index for the tunnel's destination */ - adj_index_t adj_index; /* The midchain adj this tunnel creates */ - u32 sibling_index; -} mpls_gre_tunnel_t; - typedef struct { u8 tunnel_dst[6]; ip4_address_t intfc_address; @@ -81,11 +54,6 @@ typedef struct { u32 output_next_index; } mpls_encap_t; -typedef struct { - u32 tx_fib_index; - u32 next_index; /* e.g. ip4/6-input, l2-input */ -} mpls_decap_t; - #define MPLS_FIB_DEFAULT_TABLE_ID 0 /** @@ -134,10 +102,6 @@ typedef struct { u32 mpls_rx_feature_not_enabled; u32 mpls_tx_feature_interface_output; - /* pool of gre tunnel instances */ - mpls_gre_tunnel_t *gre_tunnels; - u32 * free_gre_sw_if_indices; - /* pool of ethernet tunnel instances */ mpls_eth_tunnel_t *eth_tunnels; u32 * free_eth_sw_if_indices; @@ -146,10 +110,6 @@ typedef struct { mpls_encap_t * encaps; uword * mpls_encap_by_fib_and_dest; - /* Decap side: map rx label to FIB */ - mpls_decap_t * decaps; - uword * mpls_decap_by_rx_fib_and_label; - /* mpls-o-e policy tunnel next index for ip4/ip6-classify */ u32 ip4_classify_mpls_policy_encap_next_index; u32 ip6_classify_mpls_policy_encap_next_index; @@ -197,7 +157,6 @@ __VA_ARGS__ vnet_feature_registration_t tx_##x extern clib_error_t * mpls_feature_init(vlib_main_t * vm); format_function_t format_mpls_protocol; -format_function_t format_mpls_gre_header_with_length; format_function_t format_mpls_eth_header_with_length; format_function_t format_mpls_encap_index; @@ -211,25 +170,17 @@ extern vlib_node_registration_t mpls_policy_encap_node; extern vlib_node_registration_t mpls_output_node; extern vlib_node_registration_t mpls_midchain_node; -extern vnet_device_class_t mpls_gre_device_class; - /* Parse mpls protocol as 0xXXXX or protocol name. In either host or network byte order. */ unformat_function_t unformat_mpls_protocol_host_byte_order; unformat_function_t unformat_mpls_protocol_net_byte_order; unformat_function_t unformat_mpls_label_net_byte_order; -unformat_function_t unformat_mpls_gre_header; -unformat_function_t unformat_pg_mpls_gre_header; unformat_function_t unformat_mpls_unicast_label; /* Parse mpls header. */ unformat_function_t unformat_mpls_header; unformat_function_t unformat_pg_mpls_header; -/* manually added to the interface output node in mpls.c */ -#define MPLS_GRE_OUTPUT_NEXT_LOOKUP 1 -#define MPLS_GRE_OUTPUT_NEXT_DROP VNET_INTERFACE_TX_NEXT_DROP - void mpls_sw_interface_enable_disable (mpls_main_t * mm, u32 sw_if_index, u8 is_enable); @@ -239,18 +190,6 @@ u8 mpls_sw_interface_is_enabled (u32 sw_if_index); mpls_encap_t * mpls_encap_by_fib_and_dest (mpls_main_t * mm, u32 rx_fib, u32 dst_address); -int mpls_label_from_fib_id_and_dest (mpls_main_t *gm, u32 fib_id, - u32 dst_address, u32 *labelp); - -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); - int vnet_mpls_ethernet_add_del_tunnel (u8 *dst, ip4_address_t *intfc, u32 mask_width, @@ -260,15 +199,8 @@ int vnet_mpls_ethernet_add_del_tunnel (u8 *dst, u8 l2_only, u8 is_add); -int vnet_mpls_gre_delete_fib_tunnels (u32 fib_id); - int mpls_fib_reset_labels (u32 fib_id); -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); - int vnet_mpls_add_del_encap (ip4_address_t *dest, u32 fib_id, u32 *labels_host_byte_order, u32 policy_tunnel_index, @@ -278,26 +210,6 @@ int vnet_mpls_policy_tunnel_add_rewrite (mpls_main_t * mm, mpls_encap_t * e, u32 policy_tunnel_index); -typedef struct { - u32 lookup_miss; - - /* Tunnel-id / index in tunnel vector */ - u32 tunnel_id; - - /* mpls encap index */ - u32 mpls_encap_index; - - /* pkt length */ - u32 length; - - /* tunnel ip4 addresses */ - ip4_address_t src; - ip4_address_t dst; -} mpls_gre_tx_trace_t; - -u8 * format_mpls_gre_tx_trace (u8 * s, va_list * args); -u8 * format_mpls_gre_header (u8 * s, va_list * args); - #define foreach_mpls_input_next \ _(DROP, "error-drop") \ _(LOOKUP, "mpls-lookup") @@ -369,4 +281,4 @@ mpls_fib_index_cmp(void * a1, void * a2); int mpls_label_cmp(void * a1, void * a2); -#endif /* included_vnet_mpls_gre_h */ +#endif /* included_vnet_mpls_h */ |