45 else if (
unformat (line_input,
"nh-table-id %d", &nh_table_id))
55 if (~0 == sw_if_index)
91 .path =
"create teib",
92 .short_help =
"create teib <interface> peer <addr> nh <addr> [nh-table-id <ID>]",
128 if (~0 == sw_if_index)
157 .path =
"delete teib",
158 .short_help =
"delete teib <interface> peer <addr>",
183 .short_help =
"show teib",
int teib_entry_del(u32 sw_if_index, const ip46_address_t *peer)
vnet_main_t * vnet_get_main(void)
void teib_walk(teib_walk_cb_t fn, void *ctx)
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
unformat_function_t unformat_vnet_sw_interface
u8 * format_teib_entry(u8 *s, va_list *args)
static clib_error_t * teib_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
enum walk_rc_t_ walk_rc_t
Walk return code.
static clib_error_t * teib_add(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
#define clib_error_return(e, args...)
static clib_error_t * teib_del(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
static u8 ip46_address_is_zero(const ip46_address_t *ip46)
#define VLIB_CLI_COMMAND(x,...)
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
int teib_entry_add(u32 sw_if_index, const ip46_address_t *peer, u32 nh_table_id, const ip46_address_t *nh)
Create a new TEIB entry.
#define clib_error_return_code(e, code, flags, args...)
#define ip46_address_initializer
vl_api_interface_index_t sw_if_index
static walk_rc_t teib_show_one(index_t nei, void *ctx)