|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
132 u32 main_sw_if_index, sub_sw_if_index;
144 .sup_sw_if_index = main_sw_if_index,
259 .path =
"show gpe sub-interface",
260 .short_help =
"show gpe sub-interface",
ip_address_t local_rloc
The local-RLOC.
u32 locks
A reference counting lock on the number of users of this interface.
clib_error_t * vnet_sw_interface_set_flags(vnet_main_t *vnm, u32 sw_if_index, vnet_sw_interface_flags_t flags)
vnet_sw_interface_type_t type
A Key for lookup in the L£ sub-interface DB.
static clib_error_t * lisp_gpe_sub_interface_module_init(vlib_main_t *vm)
ip4_main_t ip4_main
Global ip4 main structure.
void ip4_sw_interface_enable_disable(u32 sw_if_index, u32 is_enable)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
static void clib_mem_free(void *p)
@ VNET_SW_INTERFACE_TYPE_SUB
lisp_gpe_sub_interface_t * lisp_gpe_sub_interface_get_i(index_t l3si)
static void lisp_gpe_sub_interface_unset_table(u32 sw_if_index, u32 table_id)
#define FIB_NODE_INDEX_INVALID
@ VNET_FLOOD_CLASS_NORMAL
@ VNET_SW_INTERFACE_FLAG_ADMIN_UP
#define pool_put(P, E)
Free an object E in pool P.
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static vnet_sw_interface_t * vnet_get_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
u32 sw_if_index
The SW if index assigned to this sub-interface.
static lisp_gpe_sub_interface_t * lisp_gpe_sub_interface_pool
Pool of all l3-sub-interfaces.
u8 * format_lisp_gpe_sub_interface(u8 *s, va_list *ap)
u32 main_sw_if_index
The SW IF index assigned to the main interface of which this is a sub.
static void lisp_gpe_sub_interface_db_insert(const lisp_gpe_sub_interface_t *l3s)
u32 * fib_index_by_sw_if_index
Table index indexed by software interface.
static void lisp_gpe_sub_interface_db_remove(const lisp_gpe_sub_interface_t *l3s)
#define pool_foreach(VAR, POOL)
Iterate through pool.
vnet_main_t * vnet_get_main(void)
u32 fib_table_find_or_create_and_lock(fib_protocol_t proto, u32 table_id, fib_source_t src)
Get the index of the FIB for a Table-ID.
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
clib_error_t * vnet_create_sw_interface(vnet_main_t *vnm, vnet_sw_interface_t *template, u32 *sw_if_index)
u32 fib_node_index_t
A typedef of a node index.
u8 * format_ip_address(u8 *s, va_list *args)
#define hash_create_mem(elts, key_bytes, value_bytes)
static void lisp_gpe_sub_interface_set_table(u32 sw_if_index, u32 table_id)
#define hash_set_mem(h, key, value)
void lisp_gpe_tenant_l3_iface_unlock(u32 vni)
Release the lock held on the tenant's L3 interface.
const lisp_gpe_sub_interface_t * lisp_gpe_sub_interface_get(index_t l3si)
#define pool_get(P, E)
Allocate an object E from a pool P (unspecified alignment).
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment)
u32 * fib_index_by_sw_if_index
#define VLIB_CLI_COMMAND(x,...)
static clib_error_t * lisp_gpe_sub_interface_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
CLI command to show LISP-GPE interfaces.
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
uword * lisp_gpe_sub_interfaces_sw_if_index
A DB of all VNET L3 sub-interfaces.
#define hash_get_mem(h, key)
description fragment has unexpected format
#define VLIB_INIT_FUNCTION(x)
static index_t lisp_gpe_sub_interface_db_find(const ip_address_t *lrloc, u32 vni)
void ip6_sw_interface_enable_disable(u32 sw_if_index, u32 is_enable)
vlib_cli_command_t lisp_gpe_sub_interface_command
(constructor) VLIB_CLI_COMMAND (lisp_gpe_sub_interface_command)
index_t lisp_gpe_sub_interface_find_or_create_and_lock(const ip_address_t *lrloc, u32 overlay_table_id, u32 vni)
lisp_gpe_sub_interface_key_t * key
The interface's key inthe DB; rloc & vni; The key is allocated from the heap so it can be used in the...
clib_memset(h->entries, 0, sizeof(h->entries[0]) *entries)
void lisp_gpe_sub_interface_unlock(index_t l3si)
#define hash_unset_mem(h, key)
u32 lisp_gpe_tenant_l3_iface_add_or_lock(u32 vni, u32 table_id, u8 with_default_route)
Add/create and lock a new or find and lock the existing L3 interface for the tenant.
clib_error_t *() vlib_init_function_t(struct vlib_main_t *vm)
void fib_table_unlock(u32 fib_index, fib_protocol_t proto, fib_source_t source)
Take a reference counting lock on the table.
static uword * lisp_gpe_sub_interfaces
A DB of all LISP L3 sub-interfaces.
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
void ip_address_copy(ip_address_t *dst, const ip_address_t *src)
vl_api_interface_index_t sw_if_index
static u32 lisp_gpe_sub_interface_id
The next available sub-interface ID.
static void * clib_mem_alloc(uword size)
int vnet_delete_sub_interface(u32 sw_if_index)
u32 eid_table_id
The Table-ID in the overlay that this interface is bound to.
format_function_t format_vnet_sw_interface_name