49 memset (gr, 0,
sizeof (*gr));
68 return (VNET_API_ERROR_NO_SUCH_ENTRY);
90 "ip4-gbp-src-classify",
93 "ip6-gbp-src-classify",
104 "ip4-gbp-lpm-classify",
107 "ip6-gbp-lpm-classify",
133 "ip4-gbp-src-classify",
136 "ip6-gbp-src-classify",
142 "ip4-gbp-lpm-classify",
145 "ip6-gbp-lpm-classify",
205 .path =
"show gbp recirc",
206 .short_help =
"show gbp recirc\n",
void gbp_itf_epg_delete(u32 sw_if_index)
int(* gbp_recirc_cb_t)(gbp_recirc_t *gbpe, void *ctx)
vnet_main_t * vnet_get_main(void)
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
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
u8 gr_is_ext
Is the interface for packets post-NAT translatoin (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.
void gbp_itf_epg_update(u32 sw_if_index, epg_id_t src_epg, u8 do_policy)
Port to EPG mapping management.
static clib_error_t * gbp_recirc_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
#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)