|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
45 #define GBP_EPG_DBG(...) \
46 vlib_log_debug (gg_logger, __VA_ARGS__);
100 return (VNET_API_ERROR_BD_NOT_MODIFIABLE);
107 return (VNET_API_ERROR_NO_SUCH_FIB);
146 L2INPUT_FEAT_GBP_NULL_CLASSIFY);
214 return (VNET_API_ERROR_NO_SUCH_ENTRY);
273 else if (
unformat (input,
"epg %d", &vnid))
313 .path =
"gbp endpoint-group",
314 .short_help =
"gbp endpoint-group [del] epg <ID> bd <ID> rd <ID> [sclass <ID>] [<interface>]",
323 s =
format (s,
"[remote-EP-timeout:%d]",
rt->remote_ep_timeout);
334 s =
format (s,
"[%d] %d, sclass:%d bd:%d rd:%d uplink:%U retention:%U locks:%d",
380 .path =
"show gbp endpoint-group",
381 .short_help =
"show gbp endpoint-group\n",
int gbp_endpoint_group_delete(sclass_t sclass)
void gbp_itf_l2_set_input_feature(gbp_itf_hdl_t gh, l2input_feat_masks_t feats)
static clib_error_t * gbp_endpoint_group_cli(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
gbp_itf_hdl_t gg_uplink_itf
index_t gbp_endpoint_group_find(sclass_t sclass)
static vlib_cli_command_t gbp_endpoint_group_show_node
(constructor) VLIB_CLI_COMMAND (gbp_endpoint_group_show_node)
#define hash_set(h, key, value)
vl_api_interface_index_t uplink_sw_if_index
gbp_endpoint_group_t * gbp_endpoint_group_pool
Pool of GBP endpoint_groups.
#define FOR_EACH_FIB_IP_PROTOCOL(_item)
u32 grd_fib_index[FIB_PROTOCOL_IP_MAX]
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
vlib_log_class_t gg_logger
void gbp_endpoint_group_walk(gbp_endpoint_group_cb_t cb, void *ctx)
vlib_log_class_t vlib_log_register_class(char *class, char *subclass)
index_t gg_gbd
Bridge-domain ID the EPG is in.
#define clib_error_return(e, args...)
int(* gbp_endpoint_group_cb_t)(gbp_endpoint_group_t *gbpe, void *ctx)
int gbp_endpoint_group_add_and_lock(vnid_t vnid, u16 sclass, u32 bd_id, u32 rd_id, u32 uplink_sw_if_index, const gbp_endpoint_retention_t *retention)
u32 gg_uplink_sw_if_index
the uplink interface dedicated to the EPG
#define pool_put(P, E)
Free an object E in pool P.
A route Domain Representation.
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static u8 * format_gbp_endpoint_retention(u8 *s, va_list *args)
static gbp_bridge_domain_t * gbp_bridge_domain_get(index_t i)
u8 * format_gbp_endpoint_group(u8 *s, va_list *args)
u32 gb_bd_id
Bridge-domain ID.
#define hash_unset(h, key)
static clib_error_t * gbp_endpoint_group_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
#define pool_foreach(VAR, POOL)
Iterate through pool.
void dvr_dpo_add_or_lock(u32 sw_if_index, dpo_proto_t dproto, dpo_id_t *dpo)
void gbp_itf_hdl_reset(gbp_itf_hdl_t *gh)
static vlib_cli_command_t gbp_endpoint_group_cli_node
(constructor) VLIB_CLI_COMMAND (gbp_endpoint_group_cli_node)
vnet_main_t * vnet_get_main(void)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
An Endpoint Group representation.
u8 * format_gbp_itf_hdl(u8 *s, va_list *args)
vl_api_gbp_endpoint_retention_t retention
#define VLIB_CLI_COMMAND(x,...)
dpo_id_t gg_dpo[FIB_PROTOCOL_IP_MAX]
The DPO used in the L3 path for forwarding internal subnets.
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
dpo_proto_t fib_proto_to_dpo(fib_protocol_t fib_proto)
static int gbp_endpoint_group_show_one(gbp_endpoint_group_t *gg, void *ctx)
gbp_endpoint_group_t * gbp_endpoint_group_get(index_t i)
gbp_endpoint_group_db_t gbp_endpoint_group_db
DB of endpoint_groups.
u32 gg_locks
Locks/references to this EPG.
unformat_function_t unformat_vnet_sw_interface
description fragment has unexpected format
u32 gbp_endpoint_group_get_bd_id(const gbp_endpoint_group_t *gg)
#define VLIB_INIT_FUNCTION(x)
gbp_endpoint_retention_t gg_retention
EP retention policy.
void gbp_endpoint_group_lock(index_t ggi)
gbp_itf_hdl_t gbp_itf_l2_add_and_lock(u32 sw_if_index, index_t gbi)
gbp_route_domain_t * gbp_route_domain_get(index_t i)
index_t gbp_bridge_domain_find_and_lock(u32 bd_id)
A bridge Domain Representation.
index_t gbp_route_domain_find_and_lock(u32 rd_id)
uword * gbp_epg_sclass_db
Map sclass to EPG.
index_t gbp_endpoint_group_get_fib_index(const gbp_endpoint_group_t *gg, fib_protocol_t fproto)
Endpoint Retnetion Policy.
#define pool_get_zero(P, E)
Allocate an object E from a pool P and zero it.
index_t gg_rd
route-domain/IP-table ID the EPG is in
vnet_interface_output_runtime_t * rt
void gbp_endpoint_group_unlock(index_t ggi)
clib_error_t *() vlib_init_function_t(struct vlib_main_t *vm)
static clib_error_t * gbp_endpoint_group_init(vlib_main_t *vm)
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
void dpo_reset(dpo_id_t *dpo)
reset a DPO ID The DPO will be unlocked.
void gbp_route_domain_unlock(index_t index)
void gbp_itf_unlock(gbp_itf_hdl_t *gh)
void gbp_bridge_domain_unlock(index_t gbdi)