16 #ifndef __MPLS_TUNNEL_H__ 17 #define __MPLS_TUNNEL_H__ mpls_label_t * mt_label_stack
The Label stack to apply to egress packets.
A representation of a path as described by a route producer.
fib_node_index_t mt_path_list
The path-list over which the tunnel's destination is reachable.
A uni-directional MPLS tunnel.
u32 mpls_label_t
A label value only, i.e.
const mpls_tunnel_t * mpls_tunnel_get(u32 index)
fib_node_t mt_node
The tunnel hooks into the FIB control plane graph.
u8 mt_l2_only
Flag to indicate the tunnel is only for L2 traffic, that is this tunnel belongs in a bridge domain...
void(* mpls_tunnel_walk_cb_t)(u32 index, void *ctx)
Callback function invoked while walking MPLS tunnels.
adj_index_t mt_l2_adj
If the tunnel is an L2 tunnel, this is the link type ETHERNET adjacency.
u32 mt_l2_tx_arc
on a L2 tunnel this is the VLIB arc from the L2-tx to the l2-midchain
void vnet_mpls_tunnel_del(u32 sw_if_index)
u32 mt_sibling_index
sibling index on the path-list so notifications are received.
An node in the FIB graph.
struct mpls_tunnel_t_ mpls_tunnel_t
A uni-directional MPLS tunnel.
void mpls_tunnel_walk(mpls_tunnel_walk_cb_t cb, void *ctx)
Walk all the MPLS tunnels.
u32 fib_node_index_t
A typedef of a node index.
u32 adj_index_t
An index for adjacencies.
u32 mt_hw_if_index
The HW interface index of the tunnel interfaces.
u32 mt_sw_if_index
The SW interface index of the tunnel interfaces.
void vnet_mpls_tunnel_add(fib_route_path_t *rpath, mpls_label_t *label_stack, u8 l2_only, u32 *sw_if_index)
Create a new MPLS tunnel.