FD.io VPP  v21.01.1
Vector Packet Processing
teib.h File Reference
+ Include dependency graph for teib.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  teib_vft_t_
 

Typedefs

typedef struct teib_entry_t_ teib_entry_t
 Tunnel Endpoint Information Base. More...
 
typedef walk_rc_t(* teib_walk_cb_t) (index_t nei, void *ctx)
 
typedef void(* teib_entry_added_t) (const teib_entry_t *ne)
 Notifications for the creation and deletion of TEIB entries. More...
 
typedef void(* teib_entry_deleted_t) (const teib_entry_t *ne)
 
typedef struct teib_vft_t_ teib_vft_t
 

Functions

u32 teib_entry_get_sw_if_index (const teib_entry_t *ne)
 accessors for the opaque struct More...
 
u32 teib_entry_get_fib_index (const teib_entry_t *ne)
 
const ip_address_tteib_entry_get_peer (const teib_entry_t *ne)
 
const fib_prefix_tteib_entry_get_nh (const teib_entry_t *ne)
 
u8format_teib_entry (u8 *s, va_list *args)
 
int teib_entry_add (u32 sw_if_index, const ip_address_t *peer, u32 nh_table_id, const ip_address_t *nh)
 Create a new TEIB entry. More...
 
int teib_entry_del (u32 sw_if_index, const ip_address_t *peer)
 
teib_entry_tteib_entry_find (u32 sw_if_index, const ip_address_t *peer)
 
teib_entry_tteib_entry_find_46 (u32 sw_if_index, fib_protocol_t fproto, const ip46_address_t *peer)
 
teib_entry_tteib_entry_get (index_t nei)
 
void teib_entry_adj_stack (const teib_entry_t *ne, adj_index_t ai)
 
void teib_walk (teib_walk_cb_t fn, void *ctx)
 
void teib_walk_itf (u32 sw_if_index, teib_walk_cb_t fn, void *ctx)
 
void teib_register (const teib_vft_t *vft)
 

Typedef Documentation

◆ teib_entry_added_t

typedef void(* teib_entry_added_t) (const teib_entry_t *ne)

Notifications for the creation and deletion of TEIB entries.

Definition at line 69 of file teib.h.

◆ teib_entry_deleted_t

typedef void(* teib_entry_deleted_t) (const teib_entry_t *ne)

Definition at line 70 of file teib.h.

◆ teib_entry_t

typedef struct teib_entry_t_ teib_entry_t

Tunnel Endpoint Information Base.

A TEIB entry represents the mapping between a peer on an interface in the overlay and a next-hop address in the underlay. i.e. there's a multipoint tunnel providing the overlay (henace a peer on that tunnel) which is reachable via 'tunnel destination' address in the underlay.

Such overlay to underlay mappings might be providied by a protocol like NHRP

Definition at line 34 of file teib.h.

◆ teib_vft_t

typedef struct teib_vft_t_ teib_vft_t

◆ teib_walk_cb_t

typedef walk_rc_t(* teib_walk_cb_t) (index_t nei, void *ctx)

Definition at line 61 of file teib.h.

Function Documentation

◆ format_teib_entry()

u8* format_teib_entry ( u8 s,
va_list *  args 
)

Definition at line 294 of file teib.c.

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

◆ teib_entry_add()

int teib_entry_add ( u32  sw_if_index,
const ip_address_t peer,
u32  nh_table_id,
const ip_address_t nh 
)

Create a new TEIB entry.

Definition at line 200 of file teib.c.

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

◆ teib_entry_adj_stack()

void teib_entry_adj_stack ( const teib_entry_t ne,
adj_index_t  ai 
)

Definition at line 102 of file teib.c.

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

◆ teib_entry_del()

int teib_entry_del ( u32  sw_if_index,
const ip_address_t peer 
)

Definition at line 258 of file teib.c.

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

◆ teib_entry_find()

teib_entry_t* teib_entry_find ( u32  sw_if_index,
const ip_address_t peer 
)

Definition at line 114 of file teib.c.

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

◆ teib_entry_find_46()

teib_entry_t* teib_entry_find_46 ( u32  sw_if_index,
fib_protocol_t  fproto,
const ip46_address_t *  peer 
)

Definition at line 131 of file teib.c.

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

◆ teib_entry_get()

teib_entry_t* teib_entry_get ( index_t  nei)

Definition at line 108 of file teib.c.

+ Here is the caller graph for this function:

◆ teib_entry_get_fib_index()

u32 teib_entry_get_fib_index ( const teib_entry_t ne)

Definition at line 84 of file teib.c.

+ Here is the caller graph for this function:

◆ teib_entry_get_nh()

const fib_prefix_t* teib_entry_get_nh ( const teib_entry_t ne)

Definition at line 96 of file teib.c.

+ Here is the caller graph for this function:

◆ teib_entry_get_peer()

const ip_address_t* teib_entry_get_peer ( const teib_entry_t ne)

Definition at line 90 of file teib.c.

+ Here is the caller graph for this function:

◆ teib_entry_get_sw_if_index()

u32 teib_entry_get_sw_if_index ( const teib_entry_t ne)

accessors for the opaque struct

Definition at line 72 of file teib.c.

+ Here is the caller graph for this function:

◆ teib_register()

void teib_register ( const teib_vft_t vft)

Definition at line 408 of file teib.c.

+ Here is the caller graph for this function:

◆ teib_walk()

void teib_walk ( teib_walk_cb_t  fn,
void *  ctx 
)

Definition at line 315 of file teib.c.

+ Here is the caller graph for this function:

◆ teib_walk_itf()

void teib_walk_itf ( u32  sw_if_index,
teib_walk_cb_t  fn,
void *  ctx 
)

Definition at line 328 of file teib.c.

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