FD.io VPP  v21.01.1
Vector Packet Processing
gbp_endpoint.c File Reference
+ Include dependency graph for gbp_endpoint.c:

Go to the source code of this file.

Data Structures

struct  gbp_endpoint_flush_ctx_t_
 

Macros

#define GBP_ENDPOINT_DBG(...)   vlib_log_debug (gbp_ep_logger, __VA_ARGS__);
 
#define GBP_ENDPOINT_INFO(...)   vlib_log_notice (gbp_ep_logger, __VA_ARGS__);
 
#define FOR_EACH_GBP_ENDPOINT_ATTR(_item)
 
#define GBP_EP_HASH_NUM_BUCKETS   (2 * 1024)
 
#define GBP_EP_HASH_MEMORY_SIZE   (1 << 20)
 

Typedefs

typedef struct gbp_endpoint_flush_ctx_t_ gbp_endpoint_flush_ctx_t
 

Functions

u8format_gbp_endpoint_flags (u8 *s, va_list *args)
 
int gbp_endpoint_is_remote (const gbp_endpoint_t *ge)
 
int gbp_endpoint_is_local (const gbp_endpoint_t *ge)
 
int gbp_endpoint_is_external (const gbp_endpoint_t *ge)
 
int gbp_endpoint_is_learnt (const gbp_endpoint_t *ge)
 
static void gbp_endpoint_extract_key_mac_itf (const clib_bihash_kv_16_8_t *key, mac_address_t *mac, u32 *sw_if_index)
 
static void gbp_endpoint_extract_key_ip_itf (const clib_bihash_kv_24_8_t *key, ip46_address_t *ip, u32 *sw_if_index)
 
gbp_endpoint_tgbp_endpoint_find_ip (const ip46_address_t *ip, u32 fib_index)
 
static void gbp_endpoint_add_itf (u32 sw_if_index, index_t gei)
 
static bool gbp_endpoint_add_mac (const mac_address_t *mac, u32 bd_index, index_t gei)
 
static bool gbp_endpoint_add_ip (const ip46_address_t *ip, u32 fib_index, index_t gei)
 
static void gbp_endpoint_del_mac (const mac_address_t *mac, u32 bd_index)
 
static void gbp_endpoint_del_ip (const ip46_address_t *ip, u32 fib_index)
 
static index_t gbp_endpoint_index (const gbp_endpoint_t *ge)
 
static int gbp_endpoint_ip_is_equal (const fib_prefix_t *fp, const ip46_address_t *ip)
 
static void gbp_endpoint_ips_update (gbp_endpoint_t *ge, const ip46_address_t *ips, const gbp_route_domain_t *grd)
 
static gbp_endpoint_tgbp_endpoint_alloc (const ip46_address_t *ips, const gbp_route_domain_t *grd, const mac_address_t *mac, const gbp_bridge_domain_t *gbd)
 
static int gbp_endpoint_loc_is_equal (gbp_endpoint_loc_t *a, gbp_endpoint_loc_t *b)
 
static int gbp_endpoint_loc_cmp_for_sort (gbp_endpoint_loc_t *a, gbp_endpoint_loc_t *b)
 
static gbp_endpoint_loc_tgbp_endpoint_loc_find (gbp_endpoint_t *ge, gbp_endpoint_src_t src)
 
static int gbp_endpoint_loc_unlock (gbp_endpoint_t *ge, gbp_endpoint_loc_t *gel)
 
static void gbp_endpoint_loc_destroy (gbp_endpoint_loc_t *gel)
 
static gbp_endpoint_loc_tgbp_endpoint_loc_find_or_add (gbp_endpoint_t *ge, gbp_endpoint_src_t src)
 
static int gbp_endpoint_find_for_update (const ip46_address_t *ips, const gbp_route_domain_t *grd, const mac_address_t *mac, const gbp_bridge_domain_t *gbd, gbp_endpoint_t **ge)
 Find an EP inthe DBs and check that if we find it in the L2 DB it has the same IPs as this update. More...
 
static gbp_endpoint_src_t gbp_endpoint_get_best_src (const gbp_endpoint_t *ge)
 
static void gbp_endpoint_n_learned (int n)
 
static void gbp_endpoint_loc_update (const gbp_endpoint_t *ge, gbp_endpoint_loc_t *gel, const gbp_bridge_domain_t *gb, u32 sw_if_index, index_t ggi, gbp_endpoint_flags_t flags, const ip46_address_t *tun_src, const ip46_address_t *tun_dst)
 
static void gbb_endpoint_fwd_reset (gbp_endpoint_t *ge)
 
static void gbb_endpoint_fwd_recalc (gbp_endpoint_t *ge)
 
int gbp_endpoint_update_and_lock (gbp_endpoint_src_t src, u32 sw_if_index, const ip46_address_t *ips, const mac_address_t *mac, index_t gbdi, index_t grdi, sclass_t sclass, gbp_endpoint_flags_t flags, const ip46_address_t *tun_src, const ip46_address_t *tun_dst, u32 *handle)
 
void gbp_endpoint_unlock (gbp_endpoint_src_t src, index_t gei)
 
u32 gbp_endpoint_child_add (index_t gei, fib_node_type_t type, fib_node_index_t index)
 
void gbp_endpoint_child_remove (index_t gei, u32 sibling)
 
static walk_rc_t gbp_endpoint_flush_cb (index_t gei, void *args)
 
void gbp_endpoint_flush (gbp_endpoint_src_t src, u32 sw_if_index)
 remove all learnt endpoints using the interface More...
 
void gbp_endpoint_walk (gbp_endpoint_cb_t cb, void *ctx)
 
static clib_error_tgbp_endpoint_cli (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
u8format_gbp_endpoint_src (u8 *s, va_list *args)
 
static u8format_gbp_endpoint_fwd (u8 *s, va_list *args)
 
static u8format_gbp_endpoint_key (u8 *s, va_list *args)
 
static u8format_gbp_endpoint_loc (u8 *s, va_list *args)
 
u8format_gbp_endpoint (u8 *s, va_list *args)
 
static walk_rc_t gbp_endpoint_show_one (index_t gei, void *ctx)
 
static int gbp_endpoint_walk_ip_itf (clib_bihash_kv_24_8_t *kvp, void *arg)
 
static int gbp_endpoint_walk_mac_itf (clib_bihash_kv_16_8_t *kvp, void *arg)
 
static clib_error_tgbp_endpoint_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static void gbp_endpoint_check (index_t gei, f64 start_time)
 
static void gbp_endpoint_scan_l2 (vlib_main_t *vm)
 
static void gbp_endpoint_scan_l3 (vlib_main_t *vm)
 
void gbp_endpoint_scan (vlib_main_t *vm)
 
static fib_node_tgbp_endpoint_get_node (fib_node_index_t index)
 
static gbp_endpoint_tgbp_endpoint_from_fib_node (fib_node_t *node)
 
static void gbp_endpoint_last_lock_gone (fib_node_t *node)
 
static fib_node_back_walk_rc_t gbp_endpoint_back_walk_notify (fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
 
static clib_error_tgbp_endpoint_init (vlib_main_t *vm)
 

Variables

static const char * gbp_endpoint_attr_names [] = GBP_ENDPOINT_ATTR_NAMES
 
gbp_ep_db_t gbp_ep_db
 EP DBs. More...
 
static fib_source_t gbp_fib_source_hi
 
static fib_source_t gbp_fib_source_low
 
static fib_node_type_t gbp_endpoint_fib_type
 
static vlib_log_class_t gbp_ep_logger
 
gbp_endpoint_tgbp_endpoint_pool
 Pool of GBP endpoints. More...
 
static u32 gbp_n_learnt_endpoints
 A count of the number of dynamic entries. More...
 
static vlib_cli_command_t gbp_endpoint_cli_node
 (constructor) VLIB_CLI_COMMAND (gbp_endpoint_cli_node) More...
 
static vlib_cli_command_t gbp_endpoint_show_node
 (constructor) VLIB_CLI_COMMAND (gbp_endpoint_show_node) More...
 
static const fib_node_vft_t gbp_endpoint_vft
 

Macro Definition Documentation

◆ FOR_EACH_GBP_ENDPOINT_ATTR

#define FOR_EACH_GBP_ENDPOINT_ATTR (   _item)
Value:

Definition at line 66 of file gbp_endpoint.c.

◆ GBP_ENDPOINT_DBG

#define GBP_ENDPOINT_DBG (   ...)    vlib_log_debug (gbp_ep_logger, __VA_ARGS__);

Definition at line 50 of file gbp_endpoint.c.

◆ GBP_ENDPOINT_INFO

#define GBP_ENDPOINT_INFO (   ...)    vlib_log_notice (gbp_ep_logger, __VA_ARGS__);

Definition at line 53 of file gbp_endpoint.c.

◆ GBP_EP_HASH_MEMORY_SIZE

#define GBP_EP_HASH_MEMORY_SIZE   (1 << 20)

◆ GBP_EP_HASH_NUM_BUCKETS

#define GBP_EP_HASH_NUM_BUCKETS   (2 * 1024)

Typedef Documentation

◆ gbp_endpoint_flush_ctx_t

Function Documentation

◆ format_gbp_endpoint()

u8* format_gbp_endpoint ( u8 s,
va_list *  args 
)

Definition at line 1237 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_gbp_endpoint_flags()

u8* format_gbp_endpoint_flags ( u8 s,
va_list *  args 
)

Definition at line 72 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ format_gbp_endpoint_fwd()

static u8* format_gbp_endpoint_fwd ( u8 s,
va_list *  args 
)
static

Definition at line 1177 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_gbp_endpoint_key()

static u8* format_gbp_endpoint_key ( u8 s,
va_list *  args 
)
static

Definition at line 1192 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_gbp_endpoint_loc()

static u8* format_gbp_endpoint_loc ( u8 s,
va_list *  args 
)
static

Definition at line 1211 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_gbp_endpoint_src()

u8* format_gbp_endpoint_src ( u8 s,
va_list *  args 
)

Definition at line 1162 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbb_endpoint_fwd_recalc()

static void gbb_endpoint_fwd_recalc ( gbp_endpoint_t ge)
static

Definition at line 609 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbb_endpoint_fwd_reset()

static void gbb_endpoint_fwd_reset ( gbp_endpoint_t ge)
static

Definition at line 561 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_add_ip()

static bool gbp_endpoint_add_ip ( const ip46_address_t *  ip,
u32  fib_index,
index_t  gei 
)
static

Definition at line 173 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_add_itf()

static void gbp_endpoint_add_itf ( u32  sw_if_index,
index_t  gei 
)
static

Definition at line 150 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_add_mac()

static bool gbp_endpoint_add_mac ( const mac_address_t mac,
u32  bd_index,
index_t  gei 
)
static

Definition at line 158 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_alloc()

static gbp_endpoint_t* gbp_endpoint_alloc ( const ip46_address_t *  ips,
const gbp_route_domain_t grd,
const mac_address_t mac,
const gbp_bridge_domain_t gbd 
)
static

Definition at line 250 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_back_walk_notify()

static fib_node_back_walk_rc_t gbp_endpoint_back_walk_notify ( fib_node_t node,
fib_node_back_walk_ctx_t ctx 
)
static

Definition at line 1545 of file gbp_endpoint.c.

◆ gbp_endpoint_check()

static void gbp_endpoint_check ( index_t  gei,
f64  start_time 
)
static

Definition at line 1360 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_child_add()

u32 gbp_endpoint_child_add ( index_t  gei,
fib_node_type_t  type,
fib_node_index_t  index 
)

Definition at line 997 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_child_remove()

void gbp_endpoint_child_remove ( index_t  gei,
u32  sibling 
)

Definition at line 1004 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_cli()

static clib_error_t* gbp_endpoint_cli ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1075 of file gbp_endpoint.c.

+ Here is the call graph for this function:

◆ gbp_endpoint_del_ip()

static void gbp_endpoint_del_ip ( const ip46_address_t *  ip,
u32  fib_index 
)
static

Definition at line 197 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_del_mac()

static void gbp_endpoint_del_mac ( const mac_address_t mac,
u32  bd_index 
)
static

Definition at line 187 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_extract_key_ip_itf()

static void gbp_endpoint_extract_key_ip_itf ( const clib_bihash_kv_24_8_t key,
ip46_address_t *  ip,
u32 sw_if_index 
)
static

Definition at line 125 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_extract_key_mac_itf()

static void gbp_endpoint_extract_key_mac_itf ( const clib_bihash_kv_16_8_t key,
mac_address_t mac,
u32 sw_if_index 
)
static

Definition at line 117 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_find_for_update()

static int gbp_endpoint_find_for_update ( const ip46_address_t *  ips,
const gbp_route_domain_t grd,
const mac_address_t mac,
const gbp_bridge_domain_t gbd,
gbp_endpoint_t **  ge 
)
static

Find an EP inthe DBs and check that if we find it in the L2 DB it has the same IPs as this update.

Definition at line 380 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_find_ip()

gbp_endpoint_t* gbp_endpoint_find_ip ( const ip46_address_t *  ip,
u32  fib_index 
)

Definition at line 134 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_flush()

void gbp_endpoint_flush ( gbp_endpoint_src_t  src,
u32  sw_if_index 
)

remove all learnt endpoints using the interface

Definition at line 1038 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_flush_cb()

static walk_rc_t gbp_endpoint_flush_cb ( index_t  gei,
void *  args 
)
static

Definition at line 1017 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_from_fib_node()

static gbp_endpoint_t* gbp_endpoint_from_fib_node ( fib_node_t node)
static

Definition at line 1509 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_get_best_src()

static gbp_endpoint_src_t gbp_endpoint_get_best_src ( const gbp_endpoint_t ge)
static

Definition at line 451 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_get_node()

static fib_node_t* gbp_endpoint_get_node ( fib_node_index_t  index)
static

Definition at line 1499 of file gbp_endpoint.c.

+ Here is the call graph for this function:

◆ gbp_endpoint_index()

static index_t gbp_endpoint_index ( const gbp_endpoint_t ge)
static

Definition at line 207 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_init()

static clib_error_t* gbp_endpoint_init ( vlib_main_t vm)
static

Definition at line 1564 of file gbp_endpoint.c.

+ Here is the call graph for this function:

◆ gbp_endpoint_ip_is_equal()

static int gbp_endpoint_ip_is_equal ( const fib_prefix_t fp,
const ip46_address_t *  ip 
)
static

Definition at line 213 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_ips_update()

static void gbp_endpoint_ips_update ( gbp_endpoint_t ge,
const ip46_address_t *  ips,
const gbp_route_domain_t grd 
)
static

Definition at line 219 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_is_external()

int gbp_endpoint_is_external ( const gbp_endpoint_t ge)

Definition at line 101 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_is_learnt()

int gbp_endpoint_is_learnt ( const gbp_endpoint_t ge)

Definition at line 107 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_is_local()

int gbp_endpoint_is_local ( const gbp_endpoint_t ge)

Definition at line 95 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_is_remote()

int gbp_endpoint_is_remote ( const gbp_endpoint_t ge)

Definition at line 89 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_last_lock_gone()

static void gbp_endpoint_last_lock_gone ( fib_node_t node)
static

Definition at line 1516 of file gbp_endpoint.c.

+ Here is the call graph for this function:

◆ gbp_endpoint_loc_cmp_for_sort()

static int gbp_endpoint_loc_cmp_for_sort ( gbp_endpoint_loc_t a,
gbp_endpoint_loc_t b 
)
static

Definition at line 285 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_loc_destroy()

static void gbp_endpoint_loc_destroy ( gbp_endpoint_loc_t gel)
static

Definition at line 332 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_loc_find()

static gbp_endpoint_loc_t* gbp_endpoint_loc_find ( gbp_endpoint_t ge,
gbp_endpoint_src_t  src 
)
static

Definition at line 291 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_loc_find_or_add()

static gbp_endpoint_loc_t* gbp_endpoint_loc_find_or_add ( gbp_endpoint_t ge,
gbp_endpoint_src_t  src 
)
static

Definition at line 339 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_loc_is_equal()

static int gbp_endpoint_loc_is_equal ( gbp_endpoint_loc_t a,
gbp_endpoint_loc_t b 
)
static

Definition at line 279 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_loc_unlock()

static int gbp_endpoint_loc_unlock ( gbp_endpoint_t ge,
gbp_endpoint_loc_t gel 
)
static

Definition at line 308 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_loc_update()

static void gbp_endpoint_loc_update ( const gbp_endpoint_t ge,
gbp_endpoint_loc_t gel,
const gbp_bridge_domain_t gb,
u32  sw_if_index,
index_t  ggi,
gbp_endpoint_flags_t  flags,
const ip46_address_t *  tun_src,
const ip46_address_t *  tun_dst 
)
static

Definition at line 479 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_n_learned()

static void gbp_endpoint_n_learned ( int  n)
static

Definition at line 460 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_scan()

void gbp_endpoint_scan ( vlib_main_t vm)

Definition at line 1492 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_scan_l2()

static void gbp_endpoint_scan_l2 ( vlib_main_t vm)
static

Definition at line 1382 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_scan_l3()

static void gbp_endpoint_scan_l3 ( vlib_main_t vm)
static

Definition at line 1437 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_show()

static clib_error_t* gbp_endpoint_show ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1305 of file gbp_endpoint.c.

+ Here is the call graph for this function:

◆ gbp_endpoint_show_one()

static walk_rc_t gbp_endpoint_show_one ( index_t  gei,
void *  ctx 
)
static

Definition at line 1258 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_unlock()

void gbp_endpoint_unlock ( gbp_endpoint_src_t  src,
index_t  gei 
)

Definition at line 916 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_update_and_lock()

int gbp_endpoint_update_and_lock ( gbp_endpoint_src_t  src,
u32  sw_if_index,
const ip46_address_t *  ips,
const mac_address_t mac,
index_t  gbdi,
index_t  grdi,
sclass_t  sclass,
gbp_endpoint_flags_t  flags,
const ip46_address_t *  tun_src,
const ip46_address_t *  tun_dst,
u32 handle 
)

Definition at line 820 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_walk()

void gbp_endpoint_walk ( gbp_endpoint_cb_t  cb,
void *  ctx 
)

Definition at line 1061 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

◆ gbp_endpoint_walk_ip_itf()

static int gbp_endpoint_walk_ip_itf ( clib_bihash_kv_24_8_t kvp,
void *  arg 
)
static

Definition at line 1269 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gbp_endpoint_walk_mac_itf()

static int gbp_endpoint_walk_mac_itf ( clib_bihash_kv_16_8_t kvp,
void *  arg 
)
static

Definition at line 1287 of file gbp_endpoint.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ gbp_endpoint_attr_names

const char* gbp_endpoint_attr_names[] = GBP_ENDPOINT_ATTR_NAMES
static

Definition at line 38 of file gbp_endpoint.c.

◆ gbp_endpoint_cli_node

vlib_cli_command_t gbp_endpoint_cli_node
static
Initial value:
= {
.path = "gbp endpoint",
.short_help = "gbp endpoint del <handle> | [add] <interface> sclass <SCLASS> ip <IP> mac <MAC> [flags <flags>]",
.function = gbp_endpoint_cli,
}
static clib_error_t * gbp_endpoint_cli(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (gbp_endpoint_cli_node)

Definition at line 1154 of file gbp_endpoint.c.

◆ gbp_endpoint_fib_type

fib_node_type_t gbp_endpoint_fib_type
static

Definition at line 47 of file gbp_endpoint.c.

◆ gbp_endpoint_pool

gbp_endpoint_t* gbp_endpoint_pool

Pool of GBP endpoints.

Definition at line 59 of file gbp_endpoint.c.

◆ gbp_endpoint_show_node

vlib_cli_command_t gbp_endpoint_show_node
static
Initial value:
= {
.path = "show gbp endpoint",
.short_help = "show gbp endpoint\n",
.function = gbp_endpoint_show,
}
static clib_error_t * gbp_endpoint_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)

(constructor) VLIB_CLI_COMMAND (gbp_endpoint_show_node)

Definition at line 1352 of file gbp_endpoint.c.

◆ gbp_endpoint_vft

const fib_node_vft_t gbp_endpoint_vft
static
Initial value:
= {
.fnv_last_lock = gbp_endpoint_last_lock_gone,
}
static fib_node_back_walk_rc_t gbp_endpoint_back_walk_notify(fib_node_t *node, fib_node_back_walk_ctx_t *ctx)
static fib_node_t * gbp_endpoint_get_node(fib_node_index_t index)
static void gbp_endpoint_last_lock_gone(fib_node_t *node)

Definition at line 1556 of file gbp_endpoint.c.

◆ gbp_ep_db

gbp_ep_db_t gbp_ep_db

EP DBs.

DP functions and databases.

Definition at line 43 of file gbp_endpoint.c.

◆ gbp_ep_logger

vlib_log_class_t gbp_ep_logger
static

Definition at line 48 of file gbp_endpoint.c.

◆ gbp_fib_source_hi

fib_source_t gbp_fib_source_hi
static

Definition at line 45 of file gbp_endpoint.c.

◆ gbp_fib_source_low

fib_source_t gbp_fib_source_low
static

Definition at line 46 of file gbp_endpoint.c.

◆ gbp_n_learnt_endpoints

u32 gbp_n_learnt_endpoints
static

A count of the number of dynamic entries.

Definition at line 64 of file gbp_endpoint.c.