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

Go to the source code of this file.

Data Structures

struct  ip_neighbor_vft_t_
 Virtual function Table for neighbor protocol implementations to register. More...
 

Typedefs

typedef walk_rc_t(* ip_neighbor_walk_cb_t) (index_t ipni, void *ctx)
 
typedef int(* ip4_neighbor_proxy_addr_t) (u32 fib_index, const ip4_address_t *start, const ip4_address_t *end)
 neighbor protocol implementation registration functions this are provided by ARP and IP-ND More...
 
typedef int(* ip4_neighbor_proxy_cfg_t) (u32 sw_if_index)
 
typedef int(* ip6_neighbor_proxy_cfg_t) (u32 sw_if_index, const ip6_address_t *addr)
 
typedef struct ip_neighbor_vft_t_ ip_neighbor_vft_t
 Virtual function Table for neighbor protocol implementations to register. More...
 

Functions

ip_neighbor_tip_neighbor_get (index_t ipni)
 
int ip_neighbor_add (const ip_address_t *ip, const mac_address_t *mac, u32 sw_if_index, ip_neighbor_flags_t flags, u32 *stats_index)
 
int ip_neighbor_del (const ip_address_t *ip, u32 sw_if_index)
 
int ip_neighbor_config (ip_address_family_t af, u32 limit, u32 age, bool recycle)
 
void ip_neighbor_del_all (ip_address_family_t af, u32 sw_if_index)
 
void ip_neighbor_walk (ip_address_family_t af, u32 sw_if_index, ip_neighbor_walk_cb_t fn, void *ctx)
 
const ip_address_tip_neighbor_get_ip (const ip_neighbor_t *ipn)
 
ip_address_family_t ip_neighbor_get_af (const ip_neighbor_t *ipn)
 
const mac_address_tip_neighbor_get_mac (const ip_neighbor_t *ipn)
 
const u32 ip_neighbor_get_sw_if_index (const ip_neighbor_t *ipn)
 
void ip_neighbor_learn (const ip_neighbor_learn_t *l)
 
void ip_neighbor_update (vnet_main_t *vnm, adj_index_t ai)
 
void ip_neighbor_probe (const ip_adjacency_t *adj)
 
void ip_neighbor_probe_dst (u32 sw_if_index, ip_address_family_t af, const ip46_address_t *ip)
 
void ip_neighbor_mark (ip_address_family_t af)
 
void ip_neighbor_sweep (ip_address_family_t af)
 
void ip_neighbor_handle_event (ip_neighbor_event_t *ipne)
 From the watcher to the API to publish a new neighbor. More...
 
int ip4_neighbor_proxy_add (u32 fib_index, const ip4_address_t *start, const ip4_address_t *end)
 The set of function that vnet requires from the IP neighbour module. More...
 
int ip4_neighbor_proxy_delete (u32 fib_index, const ip4_address_t *start, const ip4_address_t *end)
 
int ip4_neighbor_proxy_enable (u32 sw_if_index)
 
int ip4_neighbor_proxy_disable (u32 sw_if_index)
 
int ip6_neighbor_proxy_add (u32 sw_if_index, const ip6_address_t *addr)
 
int ip6_neighbor_proxy_del (u32 sw_if_index, const ip6_address_t *addr)
 
void ip_neighbor_register (ip_address_family_t af, const ip_neighbor_vft_t *vft)
 

Typedef Documentation

◆ ip4_neighbor_proxy_addr_t

typedef int(* ip4_neighbor_proxy_addr_t) (u32 fib_index, const ip4_address_t *start, const ip4_address_t *end)

neighbor protocol implementation registration functions this are provided by ARP and IP-ND

Definition at line 91 of file ip_neighbor.h.

◆ ip4_neighbor_proxy_cfg_t

typedef int(* ip4_neighbor_proxy_cfg_t) (u32 sw_if_index)

Definition at line 94 of file ip_neighbor.h.

◆ ip6_neighbor_proxy_cfg_t

typedef int(* ip6_neighbor_proxy_cfg_t) (u32 sw_if_index, const ip6_address_t *addr)

Definition at line 95 of file ip_neighbor.h.

◆ ip_neighbor_vft_t

Virtual function Table for neighbor protocol implementations to register.

◆ ip_neighbor_walk_cb_t

typedef walk_rc_t(* ip_neighbor_walk_cb_t) (index_t ipni, void *ctx)

Definition at line 42 of file ip_neighbor.h.

Function Documentation

◆ ip4_neighbor_proxy_add()

int ip4_neighbor_proxy_add ( u32  fib_index,
const ip4_address_t start,
const ip4_address_t end 
)

The set of function that vnet requires from the IP neighbour module.

Note that an implementation of these functions will not exist if the ip-neighbour plugin is not loaded. so check the error codes!

Definition at line 1080 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip4_neighbor_proxy_delete()

int ip4_neighbor_proxy_delete ( u32  fib_index,
const ip4_address_t start,
const ip4_address_t end 
)

Definition at line 1093 of file ip_neighbor.c.

◆ ip4_neighbor_proxy_disable()

int ip4_neighbor_proxy_disable ( u32  sw_if_index)

Definition at line 1115 of file ip_neighbor.c.

◆ ip4_neighbor_proxy_enable()

int ip4_neighbor_proxy_enable ( u32  sw_if_index)

Definition at line 1105 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip6_neighbor_proxy_add()

int ip6_neighbor_proxy_add ( u32  sw_if_index,
const ip6_address_t *  addr 
)

Definition at line 1125 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip6_neighbor_proxy_del()

int ip6_neighbor_proxy_del ( u32  sw_if_index,
const ip6_address_t *  addr 
)

Definition at line 1135 of file ip_neighbor.c.

◆ ip_neighbor_add()

int ip_neighbor_add ( const ip_address_t ip,
const mac_address_t mac,
u32  sw_if_index,
ip_neighbor_flags_t  flags,
u32 stats_index 
)

Definition at line 476 of file ip_neighbor.c.

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

◆ ip_neighbor_config()

int ip_neighbor_config ( ip_address_family_t  af,
u32  limit,
u32  age,
bool  recycle 
)

Definition at line 1686 of file ip_neighbor.c.

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

◆ ip_neighbor_del()

int ip_neighbor_del ( const ip_address_t ip,
u32  sw_if_index 
)

Definition at line 573 of file ip_neighbor.c.

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

◆ ip_neighbor_del_all()

void ip_neighbor_del_all ( ip_address_family_t  af,
u32  sw_if_index 
)

Definition at line 615 of file ip_neighbor.c.

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

◆ ip_neighbor_get()

ip_neighbor_t* ip_neighbor_get ( index_t  ipni)

Definition at line 88 of file ip_neighbor.c.

◆ ip_neighbor_get_af()

ip_address_family_t ip_neighbor_get_af ( const ip_neighbor_t ipn)

Definition at line 121 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip_neighbor_get_ip()

const ip_address_t* ip_neighbor_get_ip ( const ip_neighbor_t ipn)

Definition at line 115 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip_neighbor_get_mac()

const mac_address_t* ip_neighbor_get_mac ( const ip_neighbor_t ipn)

Definition at line 127 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip_neighbor_get_sw_if_index()

const u32 ip_neighbor_get_sw_if_index ( const ip_neighbor_t ipn)

Definition at line 133 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip_neighbor_handle_event()

void ip_neighbor_handle_event ( ip_neighbor_event_t ipne)

From the watcher to the API to publish a new neighbor.

Definition at line 64 of file ip_neighbor_api.c.

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

◆ ip_neighbor_learn()

void ip_neighbor_learn ( const ip_neighbor_learn_t l)

Definition at line 711 of file ip_neighbor.c.

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

◆ ip_neighbor_mark()

void ip_neighbor_mark ( ip_address_family_t  af)

Definition at line 1239 of file ip_neighbor.c.

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

◆ ip_neighbor_probe()

void ip_neighbor_probe ( const ip_adjacency_t adj)

Definition at line 1032 of file ip_neighbor.c.

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

◆ ip_neighbor_probe_dst()

void ip_neighbor_probe_dst ( u32  sw_if_index,
ip_address_family_t  af,
const ip46_address_t *  ip 
)

Definition at line 1014 of file ip_neighbor.c.

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

◆ ip_neighbor_register()

void ip_neighbor_register ( ip_address_family_t  af,
const ip_neighbor_vft_t vft 
)

Definition at line 1008 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip_neighbor_sweep()

void ip_neighbor_sweep ( ip_address_family_t  af)

Definition at line 1266 of file ip_neighbor.c.

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

◆ ip_neighbor_update()

void ip_neighbor_update ( vnet_main_t vnm,
adj_index_t  ai 
)

Definition at line 635 of file ip_neighbor.c.

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

◆ ip_neighbor_walk()

void ip_neighbor_walk ( ip_address_family_t  af,
u32  sw_if_index,
ip_neighbor_walk_cb_t  fn,
void *  ctx 
)

Definition at line 1040 of file ip_neighbor.c.

+ Here is the caller graph for this function: