FD.io VPP  v20.09-64-g4f7b92f0a
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 ip46_address_t *ip, ip46_type_t type, const mac_address_t *mac, u32 sw_if_index, ip_neighbor_flags_t flags, u32 *stats_index)
 
int ip_neighbor_del (const ip46_address_t *ip, ip46_type_t type, u32 sw_if_index)
 
int ip_neighbor_config (ip46_type_t type, u32 limit, u32 age, bool recycle)
 
void ip_neighbor_del_all (ip46_type_t type, u32 sw_if_index)
 
void ip_neighbor_walk (ip46_type_t type, u32 sw_if_index, ip_neighbor_walk_cb_t fn, void *ctx)
 
const ip46_address_t * ip_neighbor_get_ip (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_advertise (vlib_main_t *vm, ip46_type_t tyoe, const ip46_address_t *addr, u32 sw_if_index)
 
void ip_neighbor_probe (const ip_adjacency_t *adj)
 
void ip_neighbor_probe_dst (const ip_adjacency_t *adj, const ip46_address_t *ip)
 
void ip_neighbor_mark (ip46_type_t type)
 
void ip_neighbor_sweep (ip46_type_t type)
 
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 (ip46_type_t type, 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 95 of file ip_neighbor.h.

◆ ip4_neighbor_proxy_cfg_t

typedef int(* ip4_neighbor_proxy_cfg_t) (u32 sw_if_index)

Definition at line 98 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 99 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 44 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 1094 of file ip_neighbor.c.

◆ ip4_neighbor_proxy_disable()

int ip4_neighbor_proxy_disable ( u32  sw_if_index)

Definition at line 1117 of file ip_neighbor.c.

◆ ip4_neighbor_proxy_enable()

int ip4_neighbor_proxy_enable ( u32  sw_if_index)

Definition at line 1107 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 1127 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 1137 of file ip_neighbor.c.

◆ ip_neighbor_add()

int ip_neighbor_add ( const ip46_address_t *  ip,
ip46_type_t  type,
const mac_address_t mac,
u32  sw_if_index,
ip_neighbor_flags_t  flags,
u32 stats_index 
)

Definition at line 458 of file ip_neighbor.c.

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

◆ ip_neighbor_advertise()

void ip_neighbor_advertise ( vlib_main_t vm,
ip46_type_t  tyoe,
const ip46_address_t *  addr,
u32  sw_if_index 
)

Definition at line 1027 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 ( ip46_type_t  type,
u32  limit,
u32  age,
bool  recycle 
)

Definition at line 1681 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 ip46_address_t *  ip,
ip46_type_t  type,
u32  sw_if_index 
)

Definition at line 557 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 ( ip46_type_t  type,
u32  sw_if_index 
)

Definition at line 600 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_ip()

const ip46_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 121 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 127 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 72 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 694 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 ( ip46_type_t  type)

Definition at line 1243 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 1021 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 ( const ip_adjacency_t adj,
const ip46_address_t *  ip 
)

Definition at line 1000 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 ( ip46_type_t  type,
const ip_neighbor_vft_t vft 
)

Definition at line 994 of file ip_neighbor.c.

+ Here is the caller graph for this function:

◆ ip_neighbor_sweep()

void ip_neighbor_sweep ( ip46_type_t  type)

Definition at line 1270 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 620 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 ( ip46_type_t  type,
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: