|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
31 #define GBP_EXT_ITF_ID 0x00000080
38 #define GBP_EXT_ITF_DBG(...) \
39 vlib_log_debug (gx_logger, __VA_ARGS__);
46 return (
format (s,
"%U%s in %U",
71 return (VNET_API_ERROR_NO_SUCH_ENTRY);
78 return (VNET_API_ERROR_NO_SUCH_ENTRY);
103 L2INPUT_FEAT_GBP_LPM_ANON_CLASSIFY |
106 L2OUTPUT_FEAT_GBP_POLICY_LPM);
118 return (VNET_API_ERROR_ENTRY_ALREADY_EXISTS);
128 return (VNET_API_ERROR_INVALID_SW_IF_INDEX);
147 return (VNET_API_ERROR_NO_SUCH_ENTRY);
176 else if (
unformat (line_input,
"anon-l3-out"))
202 case VNET_API_ERROR_ENTRY_ALREADY_EXISTS:
204 case VNET_API_ERROR_NO_SUCH_ENTRY:
205 case VNET_API_ERROR_INVALID_SW_IF_INDEX:
224 .path =
"gbp ext-itf",
225 .short_help =
"gbp ext-itf [del] <interface> bd <ID> rd <ID> [anon-l3-out]\n",
271 .path =
"show gbp ext-itf",
272 .short_help =
"show gbp ext-itf\n",
void gbp_ext_itf_walk(gbp_ext_itf_cb_t cb, void *ctx)
u32 gx_fib_index[DPO_PROTO_NUM]
cached FIB indices from the RD
void gbp_itf_l2_set_input_feature(gbp_itf_hdl_t gh, l2input_feat_masks_t feats)
#define FOR_EACH_FIB_IP_PROTOCOL(_item)
int gbp_ext_itf_add(u32 sw_if_index, u32 bd_id, u32 rd_id, u32 flags)
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 vlib_log_register_class(char *class, char *subclass)
#define clib_error_return(e, args...)
gbp_ext_itf_t * gbp_ext_itf_pool
Pool of GBP ext_itfs.
u8 * format_gbp_bridge_domain(u8 *s, va_list *args)
#define pool_put(P, E)
Free an object E in pool P.
A route Domain Representation.
static walk_rc_t gbp_ext_itf_show_one(gbp_ext_itf_t *gx, void *ctx)
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static clib_error_t * gbp_ext_itf_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
u32 gx_flags
The associated flags.
static clib_error_t * gbp_ext_itf_add_del_cli(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
walk_rc_t(* gbp_ext_itf_cb_t)(gbp_ext_itf_t *gbpe, void *ctx)
static vlib_cli_command_t gbp_itf_anon_l3out_add_del_node
(constructor) VLIB_CLI_COMMAND (gbp_itf_anon_l3out_add_del_node)
void gbp_itf_l2_set_output_feature(gbp_itf_hdl_t gh, l2output_feat_masks_t feats)
#define pool_foreach(VAR, POOL)
Iterate through pool.
static vlib_cli_command_t gbp_ext_itf_show_node
(constructor) VLIB_CLI_COMMAND (gbp_ext_itf_show_node)
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
void gbp_itf_hdl_reset(gbp_itf_hdl_t *gh)
static clib_error_t * gbp_ext_itf_init(vlib_main_t *vm)
vlib_log_class_t gx_logger
logger
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...
u8 * format_gbp_itf_hdl(u8 *s, va_list *args)
index_t gx_rd
The RD this external interface is a member of.
#define VLIB_CLI_COMMAND(x,...)
enum fib_protocol_t_ fib_protocol_t
Protocol Type.
int gbp_ext_itf_delete(u32 sw_if_index)
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
dpo_proto_t fib_proto_to_dpo(fib_protocol_t fib_proto)
#define GBP_EXT_ITF_DBG(...)
index_t gx_bd
The BD this external interface is a member of.
unformat_function_t unformat_vnet_sw_interface
description fragment has unexpected format
#define vec_validate_init_empty(V, I, INIT)
Make sure vector is long enough for given index and initialize empty space (no header,...
#define VLIB_INIT_FUNCTION(x)
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)
index_t gbp_route_domain_find_and_lock(u32 rd_id)
u8 * format_gbp_ext_itf(u8 *s, va_list *args)
#define pool_get_zero(P, E)
Allocate an object E from a pool P and zero it.
clib_error_t *() vlib_init_function_t(struct vlib_main_t *vm)
gbp_itf_hdl_t gx_itf
The interface.
An external interface maps directly to an oflex L3ExternalInterface.
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
vl_api_interface_index_t sw_if_index
enum walk_rc_t_ walk_rc_t
Walk return code.
index_t * gbp_ext_itf_db
external interface configs keyed by sw_if_index
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)
vl_api_wireguard_peer_flags_t flags