|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
53 "invalid sw_if_index");
61 args->sw_if_index, &proxy_dpo);
165 u32 is_del, addr_set = 0;
186 else if (
unformat (line_input,
"%U",
193 else if (
unformat (line_input,
"%U",
196 else if (
unformat (line_input,
"del"))
225 .path =
"ip container",
227 .short_help =
"ip container <address> <interface>",
251 else if (
unformat (line_input,
"%U",
257 else if (
unformat (line_input,
"%U",
284 .path =
"show ip container",
286 .short_help =
"show ip container <address> <interface>",
index_t dpoi_index
the index of objects of that type
#define DPO_INVALID
An initialiser for DPOs declared on the stack.
fib_node_index_t fib_table_entry_special_dpo_add(u32 fib_index, const fib_prefix_t *prefix, fib_source_t source, fib_entry_flag_t flags, const dpo_id_t *dpo)
Add a 'special' entry to the FIB that links to the DPO passed A special entry is an entry that the FI...
const fib_prefix_t * fib_entry_get_prefix(fib_node_index_t fib_entry_index)
ip4_main_t ip4_main
Global ip4 main structure.
dpo_type_t dpoi_type
the type
void ip_container_proxy_walk(ip_container_proxy_cb_t cb, void *ctx)
#define clib_error_return(e, args...)
struct ip_container_proxy_walk_ctx_t_ ip_container_proxy_walk_ctx_t
#define FIB_NODE_INDEX_INVALID
u16 fp_len
The mask length.
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
int(* ip_container_proxy_cb_t)(const fib_prefix_t *pfx, u32 sw_if_index, void *ctx)
void fib_table_walk(u32 fib_index, fib_protocol_t proto, fib_table_walk_fn_t fn, void *ctx)
Walk all entries in a FIB table N.B: This is NOT safe to deletes.
@ FIB_ENTRY_FLAG_EXCLUSIVE
@ FIB_SOURCE_PROXY
A route the is being 'proxied' on behalf of another device.
static uword vnet_sw_interface_is_api_valid(vnet_main_t *vnm, u32 sw_if_index)
A protocol Independent FIB table.
void fib_table_entry_special_remove(u32 fib_index, const fib_prefix_t *prefix, fib_source_t source)
Remove a 'special' entry from the FIB.
#define pool_foreach(VAR, POOL)
Iterate through pool.
clib_error_t * show_ip_container_cmd_fn(vlib_main_t *vm, unformat_input_t *main_input, vlib_cli_command_t *cmd)
#define clib_error_return_code(e, code, flags, args...)
u32 fib_table_get_table_id_for_sw_if_index(fib_protocol_t proto, u32 sw_if_index)
Get the Table-ID of the FIB bound to the interface.
fib_node_index_t ft_index
Index into FIB vector.
const dpo_id_t * fib_entry_contribute_ip_forwarding(fib_node_index_t fib_entry_index)
vnet_main_t * vnet_get_main(void)
static l3_proxy_dpo_t * l3_proxy_dpo_get(index_t index)
u32 fib_node_index_t
A typedef of a node index.
static const dpo_id_t * load_balance_get_bucket_i(const load_balance_t *lb, u32 bucket)
The data-path object representing L3 proxy.
struct fib_table_t_ * fibs
#define VLIB_CLI_COMMAND(x,...)
ip_container_proxy_cb_t cb
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
dpo_proto_t fib_proto_to_dpo(fib_protocol_t fib_proto)
ip46_address_t fp_addr
The address type is not deriveable from the fp_addr member.
fib_node_index_t fib_table_lookup_exact_match(u32 fib_index, const fib_prefix_t *prefix)
Perfom an exact match in the non-forwarding table.
static fib_table_walk_rc_t ip_container_proxy_fib_table_walk(fib_node_index_t fei, void *arg)
u32 l3p_sw_if_index
The Software interface index on which traffic is l3_proxyd.
unformat_function_t unformat_vnet_sw_interface
int fib_entry_is_sourced(fib_node_index_t fib_entry_index, fib_source_t source)
void l3_proxy_dpo_add_or_lock(dpo_proto_t proto, u32 sw_if_index, dpo_id_t *dpo)
enum fib_table_walk_rc_t_ fib_table_walk_rc_t
return code controlling how a table walk proceeds
struct fib_table_t_ * fibs
Vector of FIBs.
static vlib_cli_command_t ip_container_command_node
(constructor) VLIB_CLI_COMMAND (ip_container_command_node)
static load_balance_t * load_balance_get(index_t lbi)
clib_error_t * vnet_ip_container_proxy_add_del(vnet_ip_container_proxy_args_t *args)
fib_protocol_t fp_proto
protocol type
@ FIB_TABLE_WALK_CONTINUE
Continue on to the next entry.
clib_memset(h->entries, 0, sizeof(h->entries[0]) *entries)
static vlib_cli_command_t show_ip_container_command
(constructor) VLIB_CLI_COMMAND (show_ip_container_command)
u8 ip_container_proxy_is_set(fib_prefix_t *pfx, u32 sw_if_index)
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
vl_api_interface_index_t sw_if_index
clib_error_t * ip_container_cmd(vlib_main_t *vm, unformat_input_t *main_input, vlib_cli_command_t *cmd)
void dpo_reset(dpo_id_t *dpo)
reset a DPO ID The DPO will be unlocked.
Aggregate type for a prefix.
struct _vnet_ip_container_proxy_args vnet_ip_container_proxy_args_t