49 memset (gr, 0,
sizeof (*gr));
68 return (VNET_API_ERROR_NO_SUCH_ENTRY);
91 "ip4-gbp-src-classify",
94 "ip6-gbp-src-classify",
105 "ip4-gbp-lpm-classify",
108 "ip6-gbp-lpm-classify",
134 "ip4-gbp-src-classify",
137 "ip6-gbp-src-classify",
143 "ip4-gbp-lpm-classify",
146 "ip6-gbp-lpm-classify",
206 .path =
"show gbp recirc",
207 .short_help =
"show gbp recirc\n",
int(* gbp_recirc_cb_t)(gbp_recirc_t *gbpe, void *ctx)
vnet_main_t * vnet_get_main(void)
void gbp_endpoint_delete(u32 handle)
u32 gr_fib_index[FIB_PROTOCOL_IP_MAX]
FIB indices the EPG is mapped to.
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
#define pool_get(P, E)
Allocate an object E from a pool P (unspecified alignment).
format_function_t format_vnet_sw_if_index_name
index_t gr_ep
The endpoint created to represent the reric interface.
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
memset(h->entries, 0, sizeof(h->entries[0])*entries)
u8 gr_is_ext
Is the interface for packets post-NAT translation (i.e.
u32 gepg_fib_index[FIB_PROTOCOL_IP_MAX]
resulting FIB indices
#define pool_foreach(VAR, POOL, BODY)
Iterate through pool.
gbp_endpoint_group_t * gbp_endpoint_group_find(epg_id_t epg_id)
An Endpoint Group representation.
epg_id_t gr_epg
EPG ID that packets will classify to when they arrive on this recirc.
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
void ip4_sw_interface_enable_disable(u32 sw_if_index, u32 is_enable)
gbp_recirc_t * gbp_recirc_pool
Pool of GBP recircs.
#define pool_put(P, E)
Free an object E in pool P.
An Endpoint Group representation.
static clib_error_t * gbp_recirc_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
int gbp_endpoint_update(u32 sw_if_index, const ip46_address_t *ips, const mac_address_t *mac, epg_id_t epg_id, u32 *handle)
#define VLIB_CLI_COMMAND(x,...)
void gbp_recirc_walk(gbp_recirc_cb_t cb, void *ctx)
index_t * gbp_recirc_db
Recirc configs keyed by sw_if_index.
void gbp_recirc_delete(u32 sw_if_index)
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
#define FOR_EACH_FIB_IP_PROTOCOL(_item)
int gbp_recirc_add(u32 sw_if_index, epg_id_t epg_id, u8 is_ext)
static int gbp_recirc_show_one(gbp_recirc_t *gr, void *ctx)
#define vec_validate_init_empty(V, I, INIT)
Make sure vector is long enough for given index and initialize empty space (no header, unspecified alignment)
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
void ip6_sw_interface_enable_disable(u32 sw_if_index, u32 is_enable)
int vnet_feature_enable_disable(const char *arc_name, const char *node_name, u32 sw_if_index, int enable_disable, void *feature_config, u32 n_feature_config_bytes)