FD.io VPP  v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
ip_api.c File Reference
+ Include dependency graph for ip_api.c:

Go to the source code of this file.

Data Structures

struct  vl_api_ip_fib_dump_walk_ctx_t_
 
struct  apt_ip6_fib_show_ctx_t_
 
struct  vl_api_ip_mfib_dump_ctc_t_
 
struct  vl_api_ip6_mfib_dump_ctc_t_
 
struct  api_ip6nd_proxy_fib_table_walk_ctx_t_
 
struct  ip_container_proxy_walk_ctx_t_
 
union  ip4_source_check_config_t
 
struct  proxy_arp_walk_ctx_t_
 

Macros

#define vl_typedefs   /* define message structures */
 
#define vl_endianfun   /* define message structures */
 
#define vl_print(handle, ...)   vlib_cli_output (handle, __VA_ARGS__)
 
#define vl_printfun
 
#define foreach_ip_api_msg
 
#define IP4_ARP_EVENT   3
 
#define IP6_ND_EVENT   4
 
#define vl_msg_name_crc_list
 

Typedefs

typedef struct vl_api_ip_fib_dump_walk_ctx_t_ vl_api_ip_fib_dump_walk_ctx_t
 
typedef struct apt_ip6_fib_show_ctx_t_ api_ip6_fib_show_ctx_t
 
typedef struct vl_api_ip_mfib_dump_ctc_t_ vl_api_ip_mfib_dump_ctc_t
 
typedef struct vl_api_ip6_mfib_dump_ctc_t_ vl_api_ip6_mfib_dump_ctc_t
 
typedef struct api_ip6nd_proxy_fib_table_walk_ctx_t_ api_ip6nd_proxy_fib_table_walk_ctx_t
 
typedef struct ip_container_proxy_walk_ctx_t_ ip_container_proxy_walk_ctx_t
 
typedef struct proxy_arp_walk_ctx_t_ proxy_arp_walk_ctx_t
 

Enumerations

enum  { WC_ARP_REPORT, WC_ND_REPORT, RA_REPORT, REPORT_MAX }
 

Functions

void stats_dslock_with_hint (int hint, int tag)
 
void stats_dsunlock (void)
 
static vl_api_ip_neighbor_flags_t ip_neighbor_flags_encode (ip_neighbor_flags_t f)
 
static void send_ip_neighbor_details (u32 sw_if_index, const ip46_address_t *ip_address, const mac_address_t *mac, ip_neighbor_flags_t flags, vl_api_registration_t *reg, u32 context)
 
static void vl_api_ip_neighbor_dump_t_handler (vl_api_ip_neighbor_dump_t *mp)
 
static void send_ip_fib_details (vpe_api_main_t *am, vl_api_registration_t *reg, const fib_table_t *table, const fib_prefix_t *pfx, fib_route_path_encode_t *api_rpaths, u32 context)
 
static fib_table_walk_rc_t vl_api_ip_fib_dump_walk (fib_node_index_t fei, void *arg)
 
static void vl_api_ip_fib_dump_t_handler (vl_api_ip_fib_dump_t *mp)
 
static void send_ip6_fib_details (vpe_api_main_t *am, vl_api_registration_t *reg, const fib_table_t *table, const fib_prefix_t *pfx, fib_route_path_encode_t *api_rpaths, u32 context)
 
static fib_table_walk_rc_t api_ip6_fib_table_put_entries (fib_node_index_t fei, void *arg)
 
static void api_ip6_fib_table_get_all (vl_api_registration_t *reg, vl_api_ip6_fib_dump_t *mp, fib_table_t *fib_table)
 
static void vl_api_ip6_fib_dump_t_handler (vl_api_ip6_fib_dump_t *mp)
 
static void send_ip_mfib_details (vl_api_registration_t *reg, u32 context, u32 table_id, fib_node_index_t mfei)
 
static int vl_api_ip_mfib_table_dump_walk (fib_node_index_t fei, void *arg)
 
static void vl_api_ip_mfib_dump_t_handler (vl_api_ip_mfib_dump_t *mp)
 
static void send_ip6_mfib_details (vpe_api_main_t *am, vl_api_registration_t *reg, u32 table_id, const mfib_prefix_t *pfx, fib_route_path_encode_t *api_rpaths, u32 context)
 
static int vl_api_ip6_mfib_table_dump_walk (fib_node_index_t fei, void *arg)
 
static void vl_api_ip6_mfib_dump_t_handler (vl_api_ip6_mfib_dump_t *mp)
 
static void vl_api_ip_punt_police_t_handler (vl_api_ip_punt_police_t *mp, vlib_main_t *vm)
 
static void vl_api_ip_punt_redirect_t_handler (vl_api_ip_punt_redirect_t *mp, vlib_main_t *vm)
 
static ip_neighbor_flags_t ip_neighbor_flags_decode (vl_api_ip_neighbor_flags_t v)
 
static void vl_api_ip_neighbor_add_del_t_handler (vl_api_ip_neighbor_add_del_t *mp, vlib_main_t *vm)
 
void ip_table_delete (fib_protocol_t fproto, u32 table_id, u8 is_api)
 
void vl_api_ip_table_add_del_t_handler (vl_api_ip_table_add_del_t *mp)
 
int add_del_route_t_handler (u8 is_multipath, u8 is_add, u8 is_drop, u8 is_unreach, u8 is_prohibit, u8 is_local, u8 is_multicast, u8 is_classify, u32 classify_table_index, u8 is_resolve_host, u8 is_resolve_attached, u8 is_interface_rx, u8 is_rpf_id, u8 is_dvr, u8 is_source_lookup, u8 is_udp_encap, u32 fib_index, const fib_prefix_t *prefix, dpo_proto_t next_hop_proto, const ip46_address_t *next_hop, u32 next_hop_id, u32 next_hop_sw_if_index, u8 next_hop_fib_index, u16 next_hop_weight, u16 next_hop_preference, mpls_label_t next_hop_via_label, fib_mpls_label_t *next_hop_out_label_stack)
 
int add_del_route_check (fib_protocol_t table_proto, u32 table_id, u32 next_hop_sw_if_index, dpo_proto_t next_hop_table_proto, u32 next_hop_table_id, u8 is_rpf_id, u32 *fib_index, u32 *next_hop_fib_index)
 
static int ip4_add_del_route_t_handler (vl_api_ip_add_del_route_t *mp, u32 *stats_index)
 
static int ip6_add_del_route_t_handler (vl_api_ip_add_del_route_t *mp, u32 *stats_index)
 
void vl_api_ip_add_del_route_t_handler (vl_api_ip_add_del_route_t *mp)
 
void ip_table_create (fib_protocol_t fproto, u32 table_id, u8 is_api, const u8 *name)
 
static int add_del_mroute_check (fib_protocol_t table_proto, u32 table_id, u32 next_hop_sw_if_index, u8 is_local, u32 *fib_index)
 
static fib_node_index_t mroute_add_del_handler (u8 is_add, u8 is_local, u32 fib_index, const mfib_prefix_t *prefix, dpo_proto_t nh_proto, u32 entry_flags, fib_rpf_id_t rpf_id, u32 next_hop_sw_if_index, ip46_address_t *nh, u32 itf_flags, u32 bier_imp)
 
static int api_mroute_add_del_t_handler (vl_api_ip_mroute_add_del_t *mp, u32 *stats_index)
 
void vl_api_ip_mroute_add_del_t_handler (vl_api_ip_mroute_add_del_t *mp)
 
static void send_ip_details (vpe_api_main_t *am, vl_api_registration_t *reg, u32 sw_if_index, u8 is_ipv6, u32 context)
 
static void send_ip_address_details (vpe_api_main_t *am, vl_api_registration_t *reg, u8 *ip, u16 prefix_length, u32 sw_if_index, u8 is_ipv6, u32 context)
 
static void vl_api_ip_address_dump_t_handler (vl_api_ip_address_dump_t *mp)
 
static void send_ip_unnumbered_details (vpe_api_main_t *am, vl_api_registration_t *reg, u32 sw_if_index, u32 ip_sw_if_index, u32 context)
 
static void vl_api_ip_unnumbered_dump_t_handler (vl_api_ip_unnumbered_dump_t *mp)
 
static void vl_api_ip_dump_t_handler (vl_api_ip_dump_t *mp)
 
static void set_ip6_flow_hash (vl_api_set_ip_flow_hash_t *mp)
 
static void set_ip4_flow_hash (vl_api_set_ip_flow_hash_t *mp)
 
static void vl_api_set_ip_flow_hash_t_handler (vl_api_set_ip_flow_hash_t *mp)
 
static void vl_api_sw_interface_ip6nd_ra_config_t_handler (vl_api_sw_interface_ip6nd_ra_config_t *mp)
 
static void vl_api_sw_interface_ip6nd_ra_prefix_t_handler (vl_api_sw_interface_ip6nd_ra_prefix_t *mp)
 
static void send_ip6nd_proxy_details (vl_api_registration_t *reg, u32 context, const ip46_address_t *addr, u32 sw_if_index)
 
static fib_table_walk_rc_t api_ip6nd_proxy_fib_table_walk (fib_node_index_t fei, void *arg)
 
static void vl_api_ip6nd_proxy_dump_t_handler (vl_api_ip6nd_proxy_dump_t *mp)
 
static void vl_api_ip6nd_proxy_add_del_t_handler (vl_api_ip6nd_proxy_add_del_t *mp)
 
static void vl_api_ip6nd_send_router_solicitation_t_handler (vl_api_ip6nd_send_router_solicitation_t *mp)
 
static void vl_api_sw_interface_ip6_enable_disable_t_handler (vl_api_sw_interface_ip6_enable_disable_t *mp)
 
void vl_mfib_signal_send_one (vl_api_registration_t *reg, u32 context, const mfib_signal_t *mfs)
 
static void vl_api_mfib_signal_dump_t_handler (vl_api_mfib_signal_dump_t *mp)
 
static void vl_api_ip_container_proxy_add_del_t_handler (vl_api_ip_container_proxy_add_del_t *mp)
 
static int ip_container_proxy_send_details (const fib_prefix_t *pfx, u32 sw_if_index, void *args)
 
static void vl_api_ip_container_proxy_dump_t_handler (vl_api_ip_container_proxy_dump_t *mp)
 
static void vl_api_ioam_enable_t_handler (vl_api_ioam_enable_t *mp)
 
static void vl_api_ioam_disable_t_handler (vl_api_ioam_disable_t *mp)
 
static void vl_api_ip_source_and_port_range_check_add_del_t_handler (vl_api_ip_source_and_port_range_check_add_del_t *mp)
 
static void vl_api_ip_source_and_port_range_check_interface_add_del_t_handler (vl_api_ip_source_and_port_range_check_interface_add_del_t *mp)
 
static void vl_api_ip_source_check_interface_add_del_t_handler (vl_api_ip_source_check_interface_add_del_t *mp)
 
static int arp_change_delete_callback (u32 pool_index, const mac_address_t *mac, u32 sw_if_index, const ip4_address_t *address)
 
static void handle_ip4_arp_event (u32 pool_index)
 
static int nd_change_delete_callback (u32 pool_index, const mac_address_t *mac, u32 sw_if_index, const ip6_address_t *addr)
 
static void handle_ip6_nd_event (u32 pool_index)
 
static uword resolver_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static int nd_change_data_callback (u32 pool_index, const mac_address_t *new_mac, u32 sw_if_index, const ip6_address_t *address)
 
static uword wc_arp_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static int arp_change_data_callback (u32 pool_index, const mac_address_t *mac, u32 sw_if_index, const ip4_address_t *address)
 
static void vl_api_want_ip4_arp_events_t_handler (vl_api_want_ip4_arp_events_t *mp)
 
static clib_error_twant_ip4_arp_events_reaper (u32 client_index)
 
 VL_MSG_API_REAPER_FUNCTION (want_ip4_arp_events_reaper)
 
static void vl_api_want_ip6_nd_events_t_handler (vl_api_want_ip6_nd_events_t *mp)
 
static clib_error_twant_ip6_nd_events_reaper (u32 client_index)
 
 VL_MSG_API_REAPER_FUNCTION (want_ip6_nd_events_reaper)
 
static void vl_api_want_ip6_ra_events_t_handler (vl_api_want_ip6_ra_events_t *mp)
 
static clib_error_twant_ip6_ra_events_reaper (u32 client_index)
 
 VL_MSG_API_REAPER_FUNCTION (want_ip6_ra_events_reaper)
 
static void vl_api_proxy_arp_add_del_t_handler (vl_api_proxy_arp_add_del_t *mp)
 
static walk_rc_t send_proxy_arp_details (const ip4_address_t *lo_addr, const ip4_address_t *hi_addr, u32 fib_index, void *data)
 
static void vl_api_proxy_arp_dump_t_handler (vl_api_proxy_arp_dump_t *mp)
 
static walk_rc_t send_proxy_arp_intfc_details (vnet_main_t *vnm, vnet_sw_interface_t *si, void *data)
 
static void vl_api_proxy_arp_intfc_dump_t_handler (vl_api_proxy_arp_intfc_dump_t *mp)
 
static void vl_api_proxy_arp_intfc_enable_disable_t_handler (vl_api_proxy_arp_intfc_enable_disable_t *mp)
 
static void vl_api_ip_probe_neighbor_t_handler (vl_api_ip_probe_neighbor_t *mp)
 
static void vl_api_ip_scan_neighbor_enable_disable_t_handler (vl_api_ip_scan_neighbor_enable_disable_t *mp)
 
static int ip4_reset_fib_t_handler (vl_api_reset_fib_t *mp)
 
static int ip6_reset_fib_t_handler (vl_api_reset_fib_t *mp)
 
static void vl_api_reset_fib_t_handler (vl_api_reset_fib_t *mp)
 
static void vl_api_set_arp_neighbor_limit_t_handler (vl_api_set_arp_neighbor_limit_t *mp)
 
void vl_api_ip_reassembly_set_t_handler (vl_api_ip_reassembly_set_t *mp)
 
void vl_api_ip_reassembly_get_t_handler (vl_api_ip_reassembly_get_t *mp)
 
void vl_api_ip_reassembly_enable_disable_t_handler (vl_api_ip_reassembly_enable_disable_t *mp)
 
void send_ip_punt_redirect_details (vl_api_registration_t *reg, u32 context, u32 sw_if_index, ip_punt_redirect_rx_t *pr, u8 is_ipv6)
 
static void vl_api_ip_punt_redirect_dump_t_handler (vl_api_ip_punt_redirect_dump_t *mp)
 
static void setup_message_id_table (api_main_t *am)
 
static clib_error_tip_api_hookup (vlib_main_t *vm)
 
 VLIB_API_INIT_FUNCTION (ip_api_hookup)
 

Variables

static vlib_node_registration_t ip_resolver_process_node
 (constructor) VLIB_REGISTER_NODE (ip_resolver_process_node) More...
 
static vlib_node_registration_t wc_arp_process_node
 (constructor) VLIB_REGISTER_NODE (wc_arp_process_node) More...
 

Macro Definition Documentation

◆ foreach_ip_api_msg

#define foreach_ip_api_msg
Value:
_(IP_FIB_DUMP, ip_fib_dump) \
_(IP6_FIB_DUMP, ip6_fib_dump) \
_(IP_MFIB_DUMP, ip_mfib_dump) \
_(IP6_MFIB_DUMP, ip6_mfib_dump) \
_(IP_NEIGHBOR_DUMP, ip_neighbor_dump) \
_(IP_MROUTE_ADD_DEL, ip_mroute_add_del) \
_(MFIB_SIGNAL_DUMP, mfib_signal_dump) \
_(IP_ADDRESS_DUMP, ip_address_dump) \
_(IP_UNNUMBERED_DUMP, ip_unnumbered_dump) \
_(IP_DUMP, ip_dump) \
_(IP_NEIGHBOR_ADD_DEL, ip_neighbor_add_del) \
_(SET_ARP_NEIGHBOR_LIMIT, set_arp_neighbor_limit) \
_(IP_PROBE_NEIGHBOR, ip_probe_neighbor) \
_(IP_SCAN_NEIGHBOR_ENABLE_DISABLE, ip_scan_neighbor_enable_disable) \
_(WANT_IP4_ARP_EVENTS, want_ip4_arp_events) \
_(WANT_IP6_ND_EVENTS, want_ip6_nd_events) \
_(WANT_IP6_RA_EVENTS, want_ip6_ra_events) \
_(PROXY_ARP_ADD_DEL, proxy_arp_add_del) \
_(PROXY_ARP_DUMP, proxy_arp_dump) \
_(PROXY_ARP_INTFC_ENABLE_DISABLE, proxy_arp_intfc_enable_disable) \
_(PROXY_ARP_INTFC_DUMP, proxy_arp_intfc_dump) \
_(RESET_FIB, reset_fib) \
_(IP_ADD_DEL_ROUTE, ip_add_del_route) \
_(IP_TABLE_ADD_DEL, ip_table_add_del) \
_(IP_PUNT_POLICE, ip_punt_police) \
_(IP_PUNT_REDIRECT, ip_punt_redirect) \
_(SET_IP_FLOW_HASH,set_ip_flow_hash) \
_(SW_INTERFACE_IP6ND_RA_CONFIG, sw_interface_ip6nd_ra_config) \
_(SW_INTERFACE_IP6ND_RA_PREFIX, sw_interface_ip6nd_ra_prefix) \
_(IP6ND_PROXY_ADD_DEL, ip6nd_proxy_add_del) \
_(IP6ND_PROXY_DUMP, ip6nd_proxy_dump) \
_(IP6ND_SEND_ROUTER_SOLICITATION, ip6nd_send_router_solicitation) \
_(SW_INTERFACE_IP6_ENABLE_DISABLE, sw_interface_ip6_enable_disable ) \
_(IP_CONTAINER_PROXY_ADD_DEL, ip_container_proxy_add_del) \
_(IP_CONTAINER_PROXY_DUMP, ip_container_proxy_dump) \
_(IOAM_ENABLE, ioam_enable) \
_(IOAM_DISABLE, ioam_disable) \
_(IP_SOURCE_AND_PORT_RANGE_CHECK_ADD_DEL, \
ip_source_and_port_range_check_add_del) \
_(IP_SOURCE_AND_PORT_RANGE_CHECK_INTERFACE_ADD_DEL, \
ip_source_and_port_range_check_interface_add_del) \
_(IP_SOURCE_CHECK_INTERFACE_ADD_DEL, \
ip_source_check_interface_add_del) \
_(IP_REASSEMBLY_SET, ip_reassembly_set) \
_(IP_REASSEMBLY_GET, ip_reassembly_get) \
_(IP_REASSEMBLY_ENABLE_DISABLE, ip_reassembly_enable_disable) \
_(IP_PUNT_REDIRECT_DUMP, ip_punt_redirect_dump)
static uword ip_punt_redirect(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u8 arc_index, ip_punt_redirect_t *redirect)
Definition: ip_punt_drop.h:301

Definition at line 72 of file ip_api.c.

◆ IP4_ARP_EVENT

#define IP4_ARP_EVENT   3

Definition at line 2235 of file ip_api.c.

◆ IP6_ND_EVENT

#define IP6_ND_EVENT   4

Definition at line 2236 of file ip_api.c.

◆ vl_endianfun

#define vl_endianfun   /* define message structures */

Definition at line 59 of file ip_api.c.

◆ vl_msg_name_crc_list

#define vl_msg_name_crc_list

Definition at line 3485 of file ip_api.c.

◆ vl_print

#define vl_print (   handle,
  ... 
)    vlib_cli_output (handle, __VA_ARGS__)

Definition at line 64 of file ip_api.c.

◆ vl_printfun

#define vl_printfun

Definition at line 65 of file ip_api.c.

◆ vl_typedefs

#define vl_typedefs   /* define message structures */

Definition at line 55 of file ip_api.c.

Typedef Documentation

◆ api_ip6_fib_show_ctx_t

◆ api_ip6nd_proxy_fib_table_walk_ctx_t

◆ ip_container_proxy_walk_ctx_t

◆ proxy_arp_walk_ctx_t

◆ vl_api_ip6_mfib_dump_ctc_t

◆ vl_api_ip_fib_dump_walk_ctx_t

◆ vl_api_ip_mfib_dump_ctc_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
WC_ARP_REPORT 
WC_ND_REPORT 
RA_REPORT 
REPORT_MAX 

Definition at line 2434 of file ip_api.c.

Function Documentation

◆ add_del_mroute_check()

static int add_del_mroute_check ( fib_protocol_t  table_proto,
u32  table_id,
u32  next_hop_sw_if_index,
u8  is_local,
u32 fib_index 
)
static

Definition at line 1258 of file ip_api.c.

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

◆ add_del_route_check()

int add_del_route_check ( fib_protocol_t  table_proto,
u32  table_id,
u32  next_hop_sw_if_index,
dpo_proto_t  next_hop_table_proto,
u32  next_hop_table_id,
u8  is_rpf_id,
u32 fib_index,
u32 next_hop_fib_index 
)

Definition at line 972 of file ip_api.c.

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

◆ add_del_route_t_handler()

int add_del_route_t_handler ( u8  is_multipath,
u8  is_add,
u8  is_drop,
u8  is_unreach,
u8  is_prohibit,
u8  is_local,
u8  is_multicast,
u8  is_classify,
u32  classify_table_index,
u8  is_resolve_host,
u8  is_resolve_attached,
u8  is_interface_rx,
u8  is_rpf_id,
u8  is_dvr,
u8  is_source_lookup,
u8  is_udp_encap,
u32  fib_index,
const fib_prefix_t prefix,
dpo_proto_t  next_hop_proto,
const ip46_address_t *  next_hop,
u32  next_hop_id,
u32  next_hop_sw_if_index,
u8  next_hop_fib_index,
u16  next_hop_weight,
u16  next_hop_preference,
mpls_label_t  next_hop_via_label,
fib_mpls_label_t next_hop_out_label_stack 
)

Definition at line 793 of file ip_api.c.

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

◆ api_ip6_fib_table_get_all()

static void api_ip6_fib_table_get_all ( vl_api_registration_t reg,
vl_api_ip6_fib_dump_t mp,
fib_table_t fib_table 
)
static

Definition at line 369 of file ip_api.c.

+ Here is the call graph for this function:

◆ api_ip6_fib_table_put_entries()

static fib_table_walk_rc_t api_ip6_fib_table_put_entries ( fib_node_index_t  fei,
void *  arg 
)
static

Definition at line 359 of file ip_api.c.

+ Here is the caller graph for this function:

◆ api_ip6nd_proxy_fib_table_walk()

static fib_table_walk_rc_t api_ip6nd_proxy_fib_table_walk ( fib_node_index_t  fei,
void *  arg 
)
static

Definition at line 1771 of file ip_api.c.

+ Here is the call graph for this function:

◆ api_mroute_add_del_t_handler()

static int api_mroute_add_del_t_handler ( vl_api_ip_mroute_add_del_t mp,
u32 stats_index 
)
static

Definition at line 1338 of file ip_api.c.

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

◆ arp_change_data_callback()

static int arp_change_data_callback ( u32  pool_index,
const mac_address_t mac,
u32  sw_if_index,
const ip4_address_t address 
)
static

Definition at line 2624 of file ip_api.c.

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

◆ arp_change_delete_callback()

static int arp_change_delete_callback ( u32  pool_index,
const mac_address_t mac,
u32  sw_if_index,
const ip4_address_t address 
)
static

Definition at line 2241 of file ip_api.c.

+ Here is the caller graph for this function:

◆ handle_ip4_arp_event()

static void handle_ip4_arp_event ( u32  pool_index)
static

Definition at line 2255 of file ip_api.c.

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

◆ handle_ip6_nd_event()

static void handle_ip6_nd_event ( u32  pool_index)
static

Definition at line 2318 of file ip_api.c.

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

◆ ip4_add_del_route_t_handler()

static int ip4_add_del_route_t_handler ( vl_api_ip_add_del_route_t mp,
u32 stats_index 
)
static

Definition at line 1023 of file ip_api.c.

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

◆ ip4_reset_fib_t_handler()

static int ip4_reset_fib_t_handler ( vl_api_reset_fib_t mp)
static

Definition at line 3178 of file ip_api.c.

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

◆ ip6_add_del_route_t_handler()

static int ip6_add_del_route_t_handler ( vl_api_ip_add_del_route_t mp,
u32 stats_index 
)
static

Definition at line 1108 of file ip_api.c.

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

◆ ip6_reset_fib_t_handler()

static int ip6_reset_fib_t_handler ( vl_api_reset_fib_t mp)
static

Definition at line 3245 of file ip_api.c.

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

◆ ip_api_hookup()

static clib_error_t* ip_api_hookup ( vlib_main_t vm)
static

Definition at line 3498 of file ip_api.c.

+ Here is the call graph for this function:

◆ ip_container_proxy_send_details()

static int ip_container_proxy_send_details ( const fib_prefix_t pfx,
u32  sw_if_index,
void *  args 
)
static

Definition at line 1997 of file ip_api.c.

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

◆ ip_neighbor_flags_decode()

static ip_neighbor_flags_t ip_neighbor_flags_decode ( vl_api_ip_neighbor_flags_t  v)
static

Definition at line 679 of file ip_api.c.

+ Here is the caller graph for this function:

◆ ip_neighbor_flags_encode()

static vl_api_ip_neighbor_flags_t ip_neighbor_flags_encode ( ip_neighbor_flags_t  f)
static

Definition at line 126 of file ip_api.c.

+ Here is the caller graph for this function:

◆ ip_table_create()

void ip_table_create ( fib_protocol_t  fproto,
u32  table_id,
u8  is_api,
const u8 name 
)

Definition at line 1218 of file ip_api.c.

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

◆ ip_table_delete()

void ip_table_delete ( fib_protocol_t  fproto,
u32  table_id,
u8  is_api 
)

Definition at line 738 of file ip_api.c.

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

◆ mroute_add_del_handler()

static fib_node_index_t mroute_add_del_handler ( u8  is_add,
u8  is_local,
u32  fib_index,
const mfib_prefix_t prefix,
dpo_proto_t  nh_proto,
u32  entry_flags,
fib_rpf_id_t  rpf_id,
u32  next_hop_sw_if_index,
ip46_address_t *  nh,
u32  itf_flags,
u32  bier_imp 
)
static

Definition at line 1284 of file ip_api.c.

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

◆ nd_change_data_callback()

static int nd_change_data_callback ( u32  pool_index,
const mac_address_t new_mac,
u32  sw_if_index,
const ip6_address_t address 
)
static

Definition at line 2411 of file ip_api.c.

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

◆ nd_change_delete_callback()

static int nd_change_delete_callback ( u32  pool_index,
const mac_address_t mac,
u32  sw_if_index,
const ip6_address_t addr 
)
static

Definition at line 2304 of file ip_api.c.

+ Here is the caller graph for this function:

◆ resolver_process()

static uword resolver_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 2367 of file ip_api.c.

+ Here is the call graph for this function:

◆ send_ip6_fib_details()

static void send_ip6_fib_details ( vpe_api_main_t am,
vl_api_registration_t reg,
const fib_table_t table,
const fib_prefix_t pfx,
fib_route_path_encode_t api_rpaths,
u32  context 
)
static

Definition at line 315 of file ip_api.c.

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

◆ send_ip6_mfib_details()

static void send_ip6_mfib_details ( vpe_api_main_t am,
vl_api_registration_t reg,
u32  table_id,
const mfib_prefix_t pfx,
fib_route_path_encode_t api_rpaths,
u32  context 
)
static

Definition at line 520 of file ip_api.c.

+ Here is the call graph for this function:

◆ send_ip6nd_proxy_details()

static void send_ip6nd_proxy_details ( vl_api_registration_t reg,
u32  context,
const ip46_address_t *  addr,
u32  sw_if_index 
)
static

Definition at line 1748 of file ip_api.c.

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

◆ send_ip_address_details()

static void send_ip_address_details ( vpe_api_main_t am,
vl_api_registration_t reg,
u8 ip,
u16  prefix_length,
u32  sw_if_index,
u8  is_ipv6,
u32  context 
)
static

Definition at line 1443 of file ip_api.c.

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

◆ send_ip_details()

static void send_ip_details ( vpe_api_main_t am,
vl_api_registration_t reg,
u32  sw_if_index,
u8  is_ipv6,
u32  context 
)
static

Definition at line 1425 of file ip_api.c.

+ Here is the call graph for this function:

◆ send_ip_fib_details()

static void send_ip_fib_details ( vpe_api_main_t am,
vl_api_registration_t reg,
const fib_table_t table,
const fib_prefix_t pfx,
fib_route_path_encode_t api_rpaths,
u32  context 
)
static

Definition at line 216 of file ip_api.c.

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

◆ send_ip_mfib_details()

static void send_ip_mfib_details ( vl_api_registration_t reg,
u32  context,
u32  table_id,
fib_node_index_t  mfei 
)
static

Definition at line 422 of file ip_api.c.

+ Here is the call graph for this function:

◆ send_ip_neighbor_details()

static void send_ip_neighbor_details ( u32  sw_if_index,
const ip46_address_t *  ip_address,
const mac_address_t mac,
ip_neighbor_flags_t  flags,
vl_api_registration_t reg,
u32  context 
)
static

Definition at line 139 of file ip_api.c.

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

◆ send_ip_punt_redirect_details()

void send_ip_punt_redirect_details ( vl_api_registration_t reg,
u32  context,
u32  sw_if_index,
ip_punt_redirect_rx_t pr,
u8  is_ipv6 
)

Definition at line 3416 of file ip_api.c.

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

◆ send_ip_unnumbered_details()

static void send_ip_unnumbered_details ( vpe_api_main_t am,
vl_api_registration_t reg,
u32  sw_if_index,
u32  ip_sw_if_index,
u32  context 
)
static

Definition at line 1527 of file ip_api.c.

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

◆ send_proxy_arp_details()

static walk_rc_t send_proxy_arp_details ( const ip4_address_t lo_addr,
const ip4_address_t hi_addr,
u32  fib_index,
void *  data 
)
static

Definition at line 3021 of file ip_api.c.

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

◆ send_proxy_arp_intfc_details()

static walk_rc_t send_proxy_arp_intfc_details ( vnet_main_t vnm,
vnet_sw_interface_t si,
void *  data 
)
static

Definition at line 3062 of file ip_api.c.

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

◆ set_ip4_flow_hash()

static void set_ip4_flow_hash ( vl_api_set_ip_flow_hash_t mp)
static

Definition at line 1653 of file ip_api.c.

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

◆ set_ip6_flow_hash()

static void set_ip6_flow_hash ( vl_api_set_ip_flow_hash_t mp)
static

Definition at line 1634 of file ip_api.c.

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

◆ setup_message_id_table()

static void setup_message_id_table ( api_main_t am)
static

Definition at line 3490 of file ip_api.c.

+ Here is the caller graph for this function:

◆ stats_dslock_with_hint()

void stats_dslock_with_hint ( int  hint,
int  tag 
)

Definition at line 377 of file interface_api.c.

+ Here is the caller graph for this function:

◆ stats_dsunlock()

void stats_dsunlock ( void  )

Definition at line 383 of file interface_api.c.

+ Here is the caller graph for this function:

◆ vl_api_ioam_disable_t_handler()

static void vl_api_ioam_disable_t_handler ( vl_api_ioam_disable_t mp)
static

Definition at line 2058 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ioam_enable_t_handler()

static void vl_api_ioam_enable_t_handler ( vl_api_ioam_enable_t mp)
static

Definition at line 2038 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip6_fib_dump_t_handler()

static void vl_api_ip6_fib_dump_t_handler ( vl_api_ip6_fib_dump_t mp)
static

Definition at line 399 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip6_mfib_dump_t_handler()

static void vl_api_ip6_mfib_dump_t_handler ( vl_api_ip6_mfib_dump_t mp)
static

Definition at line 574 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip6_mfib_table_dump_walk()

static int vl_api_ip6_mfib_table_dump_walk ( fib_node_index_t  fei,
void *  arg 
)
static

Definition at line 564 of file ip_api.c.

◆ vl_api_ip6nd_proxy_add_del_t_handler()

static void vl_api_ip6nd_proxy_add_del_t_handler ( vl_api_ip6nd_proxy_add_del_t mp)
static

Definition at line 1825 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip6nd_proxy_dump_t_handler()

static void vl_api_ip6nd_proxy_dump_t_handler ( vl_api_ip6nd_proxy_dump_t mp)
static

Definition at line 1784 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip6nd_send_router_solicitation_t_handler()

static void vl_api_ip6nd_send_router_solicitation_t_handler ( vl_api_ip6nd_send_router_solicitation_t mp)
static

Definition at line 1842 of file ip_api.c.

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

◆ vl_api_ip_add_del_route_t_handler()

void vl_api_ip_add_del_route_t_handler ( vl_api_ip_add_del_route_t mp)

Definition at line 1192 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_address_dump_t_handler()

static void vl_api_ip_address_dump_t_handler ( vl_api_ip_address_dump_t mp)
static

Definition at line 1472 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_container_proxy_add_del_t_handler()

static void vl_api_ip_container_proxy_add_del_t_handler ( vl_api_ip_container_proxy_add_del_t mp)
static

Definition at line 1968 of file ip_api.c.

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

◆ vl_api_ip_container_proxy_dump_t_handler()

static void vl_api_ip_container_proxy_dump_t_handler ( vl_api_ip_container_proxy_dump_t mp)
static

Definition at line 2020 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_dump_t_handler()

static void vl_api_ip_dump_t_handler ( vl_api_ip_dump_t mp)
static

Definition at line 1595 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_fib_dump_t_handler()

static void vl_api_ip_fib_dump_t_handler ( vl_api_ip_fib_dump_t mp)
static

Definition at line 270 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_fib_dump_walk()

static fib_table_walk_rc_t vl_api_ip_fib_dump_walk ( fib_node_index_t  fei,
void *  arg 
)
static

Definition at line 260 of file ip_api.c.

◆ vl_api_ip_mfib_dump_t_handler()

static void vl_api_ip_mfib_dump_t_handler ( vl_api_ip_mfib_dump_t mp)
static

Definition at line 482 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_mfib_table_dump_walk()

static int vl_api_ip_mfib_table_dump_walk ( fib_node_index_t  fei,
void *  arg 
)
static

Definition at line 472 of file ip_api.c.

◆ vl_api_ip_mroute_add_del_t_handler()

void vl_api_ip_mroute_add_del_t_handler ( vl_api_ip_mroute_add_del_t mp)

Definition at line 1403 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_neighbor_add_del_t_handler()

static void vl_api_ip_neighbor_add_del_t_handler ( vl_api_ip_neighbor_add_del_t mp,
vlib_main_t vm 
)
static

Definition at line 694 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_neighbor_dump_t_handler()

static void vl_api_ip_neighbor_dump_t_handler ( vl_api_ip_neighbor_dump_t mp)
static

Definition at line 161 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_probe_neighbor_t_handler()

static void vl_api_ip_probe_neighbor_t_handler ( vl_api_ip_probe_neighbor_t mp)
static

Definition at line 3128 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_punt_police_t_handler()

static void vl_api_ip_punt_police_t_handler ( vl_api_ip_punt_police_t mp,
vlib_main_t vm 
)
static

Definition at line 621 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_punt_redirect_dump_t_handler()

static void vl_api_ip_punt_redirect_dump_t_handler ( vl_api_ip_punt_redirect_dump_t mp)
static

Definition at line 3444 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_punt_redirect_t_handler()

static void vl_api_ip_punt_redirect_t_handler ( vl_api_ip_punt_redirect_t mp,
vlib_main_t vm 
)
static

Definition at line 636 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_reassembly_enable_disable_t_handler()

void vl_api_ip_reassembly_enable_disable_t_handler ( vl_api_ip_reassembly_enable_disable_t mp)

Definition at line 3400 of file ip_api.c.

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

◆ vl_api_ip_reassembly_get_t_handler()

void vl_api_ip_reassembly_get_t_handler ( vl_api_ip_reassembly_get_t mp)

Definition at line 3366 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_reassembly_set_t_handler()

void vl_api_ip_reassembly_set_t_handler ( vl_api_ip_reassembly_set_t mp)

Definition at line 3345 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_scan_neighbor_enable_disable_t_handler()

static void vl_api_ip_scan_neighbor_enable_disable_t_handler ( vl_api_ip_scan_neighbor_enable_disable_t mp)
static

Definition at line 3160 of file ip_api.c.

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

◆ vl_api_ip_source_and_port_range_check_add_del_t_handler()

static void vl_api_ip_source_and_port_range_check_add_del_t_handler ( vl_api_ip_source_and_port_range_check_add_del_t mp)
static

Definition at line 2076 of file ip_api.c.

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

◆ vl_api_ip_source_and_port_range_check_interface_add_del_t_handler()

static void vl_api_ip_source_and_port_range_check_interface_add_del_t_handler ( vl_api_ip_source_and_port_range_check_interface_add_del_t mp)
static

Definition at line 2152 of file ip_api.c.

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

◆ vl_api_ip_source_check_interface_add_del_t_handler()

static void vl_api_ip_source_check_interface_add_del_t_handler ( vl_api_ip_source_check_interface_add_del_t mp)
static

Definition at line 2212 of file ip_api.c.

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

◆ vl_api_ip_table_add_del_t_handler()

void vl_api_ip_table_add_del_t_handler ( vl_api_ip_table_add_del_t mp)

Definition at line 773 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_ip_unnumbered_dump_t_handler()

static void vl_api_ip_unnumbered_dump_t_handler ( vl_api_ip_unnumbered_dump_t mp)
static

Definition at line 1545 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_mfib_signal_dump_t_handler()

static void vl_api_mfib_signal_dump_t_handler ( vl_api_mfib_signal_dump_t mp)
static

Definition at line 1954 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_proxy_arp_add_del_t_handler()

static void vl_api_proxy_arp_add_del_t_handler ( vl_api_proxy_arp_add_del_t mp)
static

Definition at line 2987 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_proxy_arp_dump_t_handler()

static void vl_api_proxy_arp_dump_t_handler ( vl_api_proxy_arp_dump_t mp)
static

Definition at line 3045 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_proxy_arp_intfc_dump_t_handler()

static void vl_api_proxy_arp_intfc_dump_t_handler ( vl_api_proxy_arp_intfc_dump_t mp)
static

Definition at line 3085 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_proxy_arp_intfc_enable_disable_t_handler()

static void vl_api_proxy_arp_intfc_enable_disable_t_handler ( vl_api_proxy_arp_intfc_enable_disable_t mp)
static

Definition at line 3104 of file ip_api.c.

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

◆ vl_api_reset_fib_t_handler()

static void vl_api_reset_fib_t_handler ( vl_api_reset_fib_t mp)
static

Definition at line 3303 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_set_arp_neighbor_limit_t_handler()

static void vl_api_set_arp_neighbor_limit_t_handler ( vl_api_set_arp_neighbor_limit_t mp)
static

Definition at line 3317 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_set_ip_flow_hash_t_handler()

static void vl_api_set_ip_flow_hash_t_handler ( vl_api_set_ip_flow_hash_t mp)
static

Definition at line 1673 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_sw_interface_ip6_enable_disable_t_handler()

static void vl_api_sw_interface_ip6_enable_disable_t_handler ( vl_api_sw_interface_ip6_enable_disable_t mp)
static

Definition at line 1868 of file ip_api.c.

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

◆ vl_api_sw_interface_ip6nd_ra_config_t_handler()

static void vl_api_sw_interface_ip6nd_ra_config_t_handler ( vl_api_sw_interface_ip6nd_ra_config_t mp)
static

Definition at line 1683 of file ip_api.c.

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

◆ vl_api_sw_interface_ip6nd_ra_prefix_t_handler()

static void vl_api_sw_interface_ip6nd_ra_prefix_t_handler ( vl_api_sw_interface_ip6nd_ra_prefix_t mp)
static

Definition at line 1718 of file ip_api.c.

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

◆ vl_api_want_ip4_arp_events_t_handler()

static void vl_api_want_ip4_arp_events_t_handler ( vl_api_want_ip4_arp_events_t mp)
static

Definition at line 2647 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_want_ip6_nd_events_t_handler()

static void vl_api_want_ip6_nd_events_t_handler ( vl_api_want_ip6_nd_events_t mp)
static

Definition at line 2787 of file ip_api.c.

+ Here is the call graph for this function:

◆ vl_api_want_ip6_ra_events_t_handler()

static void vl_api_want_ip6_ra_events_t_handler ( vl_api_want_ip6_ra_events_t mp)
static

Definition at line 2926 of file ip_api.c.

◆ vl_mfib_signal_send_one()

void vl_mfib_signal_send_one ( vl_api_registration_t reg,
u32  context,
const mfib_signal_t mfs 
)

Definition at line 1901 of file ip_api.c.

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

◆ VL_MSG_API_REAPER_FUNCTION() [1/3]

VL_MSG_API_REAPER_FUNCTION ( want_ip4_arp_events_reaper  )
+ Here is the caller graph for this function:

◆ VL_MSG_API_REAPER_FUNCTION() [2/3]

VL_MSG_API_REAPER_FUNCTION ( want_ip6_nd_events_reaper  )

◆ VL_MSG_API_REAPER_FUNCTION() [3/3]

VL_MSG_API_REAPER_FUNCTION ( want_ip6_ra_events_reaper  )

◆ VLIB_API_INIT_FUNCTION()

VLIB_API_INIT_FUNCTION ( ip_api_hookup  )
+ Here is the caller graph for this function:

◆ want_ip4_arp_events_reaper()

static clib_error_t* want_ip4_arp_events_reaper ( u32  client_index)
static

Definition at line 2735 of file ip_api.c.

+ Here is the call graph for this function:

◆ want_ip6_nd_events_reaper()

static clib_error_t* want_ip6_nd_events_reaper ( u32  client_index)
static

Definition at line 2873 of file ip_api.c.

+ Here is the call graph for this function:

◆ want_ip6_ra_events_reaper()

static clib_error_t* want_ip6_ra_events_reaper ( u32  client_index)
static

Definition at line 2967 of file ip_api.c.

+ Here is the call graph for this function:

◆ wc_arp_process()

static uword wc_arp_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 2438 of file ip_api.c.

+ Here is the call graph for this function:

Variable Documentation

◆ ip_resolver_process_node

static vlib_node_registration_t ip_resolver_process_node
static
Initial value:
= {
.function = resolver_process,
.name = "ip-route-resolver-process",
}
static uword resolver_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: ip_api.c:2367

(constructor) VLIB_REGISTER_NODE (ip_resolver_process_node)

Definition at line 2238 of file ip_api.c.

◆ wc_arp_process_node

static vlib_node_registration_t wc_arp_process_node
static
Initial value:
= {
.function = wc_arp_process,
.name = "wildcard-ip4-arp-publisher-process",
}
static uword wc_arp_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: ip_api.c:2438

(constructor) VLIB_REGISTER_NODE (wc_arp_process_node)

Definition at line 2432 of file ip_api.c.