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"))
206 if (~0 == sw_if_index || !addr_set)
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",
268 if (~0 == sw_if_index)
276 vlib_cli_output (vm,
"ip container proxy is: %s", has_proxy ?
"on" :
"off");
284 .path =
"show ip container",
286 .short_help =
"show ip container <address> <interface>",
fib_protocol_t fp_proto
protocol type
Continue on to the next entry.
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.
vnet_main_t * vnet_get_main(void)
#define pool_foreach(VAR, POOL)
Iterate through pool.
clib_memset(h->entries, 0, sizeof(h->entries[0]) *entries)
ip_container_proxy_cb_t cb
clib_error_t * ip_container_cmd(vlib_main_t *vm, unformat_input_t *main_input, vlib_cli_command_t *cmd)
const dpo_id_t * fib_entry_contribute_ip_forwarding(fib_node_index_t fib_entry_index)
A route the is being 'proxied' on behalf of another device.
const fib_prefix_t * fib_entry_get_prefix(fib_node_index_t fib_entry_index)
unformat_function_t unformat_vnet_sw_interface
struct ip_container_proxy_walk_ctx_t_ ip_container_proxy_walk_ctx_t
The data-path object representing L3 proxy.
void ip_container_proxy_walk(ip_container_proxy_cb_t cb, void *ctx)
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.
Aggregate type for a prefix.
#define clib_error_return(e, args...)
u16 fp_len
The mask length.
struct _vnet_ip_container_proxy_args vnet_ip_container_proxy_args_t
u32 l3p_sw_if_index
The Software interface index on which traffic is l3_proxyd.
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
ip46_address_t fp_addr
The address type is not deriveable from the fp_addr member.
dpo_type_t dpoi_type
the type
static const dpo_id_t * load_balance_get_bucket_i(const load_balance_t *lb, u32 bucket)
int(* ip_container_proxy_cb_t)(const fib_prefix_t *pfx, u32 sw_if_index, void *ctx)
fib_node_index_t ft_index
Index into FIB vector.
int fib_entry_is_sourced(fib_node_index_t fib_entry_index, fib_source_t source)
enum fib_table_walk_rc_t_ fib_table_walk_rc_t
return code controlling how a table walk proceeds
u32 fib_node_index_t
A typedef of a node index.
#define VLIB_CLI_COMMAND(x,...)
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...
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.
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
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.
static load_balance_t * load_balance_get(index_t lbi)
u8 ip_container_proxy_is_set(fib_prefix_t *pfx, u32 sw_if_index)
dpo_proto_t fib_proto_to_dpo(fib_protocol_t fib_proto)
static l3_proxy_dpo_t * l3_proxy_dpo_get(index_t index)
clib_error_t * show_ip_container_cmd_fn(vlib_main_t *vm, unformat_input_t *main_input, vlib_cli_command_t *cmd)
static uword vnet_sw_interface_is_api_valid(vnet_main_t *vnm, u32 sw_if_index)
index_t dpoi_index
the index of objects of that type
#define FIB_NODE_INDEX_INVALID
#define DPO_INVALID
An initialiser for DPOs declared on the stack.
clib_error_t * vnet_ip_container_proxy_add_del(vnet_ip_container_proxy_args_t *args)
ip4_main_t ip4_main
Global ip4 main structure.
#define clib_error_return_code(e, code, flags, args...)
struct fib_table_t_ * fibs
Vector of FIBs.
void dpo_reset(dpo_id_t *dpo)
reset a DPO ID The DPO will be unlocked.
struct fib_table_t_ * fibs
void l3_proxy_dpo_add_or_lock(dpo_proto_t proto, u32 sw_if_index, dpo_id_t *dpo)
static fib_table_walk_rc_t ip_container_proxy_fib_table_walk(fib_node_index_t fei, void *arg)
vl_api_interface_index_t sw_if_index
A protocol Independent FIB table.