FD.io VPP  v19.08.1-401-g8e4ed521a
Vector Packet Processing
arp_packet.h File Reference
+ Include dependency graph for arp_packet.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ethernet_arp_header_t
 

Macros

#define foreach_ethernet_arp_hardware_type
 
#define foreach_ethernet_arp_opcode
 

Enumerations

enum  ethernet_arp_hardware_type_t { foreach_ethernet_arp_hardware_type }
 
enum  ethernet_arp_opcode_t { ETHERNET_ARP_N_OPCODE }
 
enum  ip4_arp_next_t { IP4_ARP_NEXT_DROP, IP4_ARP_N_NEXT }
 
enum  ip4_arp_error_t {
  IP4_ARP_ERROR_THROTTLED, IP4_ARP_ERROR_RESOLVED, IP4_ARP_ERROR_NO_BUFFERS, IP4_ARP_ERROR_REQUEST_SENT,
  IP4_ARP_ERROR_NON_ARP_ADJ, IP4_ARP_ERROR_NO_SOURCE_ADDRESS
}
 

Functions

typedef CLIB_PACKED (struct { mac_address_t mac;ip4_address_t ip4;}) ethernet_arp_ip4_over_ethernet_address_t
 
 STATIC_ASSERT (sizeof(ethernet_arp_ip4_over_ethernet_address_t)==10, "Packet ethernet address and IP4 address too big")
 
void send_ip4_garp (vlib_main_t *vm, u32 sw_if_index)
 
void send_ip4_garp_w_addr (vlib_main_t *vm, const ip4_address_t *ip4_addr, u32 sw_if_index)
 

Macro Definition Documentation

◆ foreach_ethernet_arp_hardware_type

#define foreach_ethernet_arp_hardware_type
Value:
_ (0, reserved) \
_ (1, ethernet) \
_ (2, experimental_ethernet) \
_ (3, ax_25) \
_ (4, proteon_pronet_token_ring) \
_ (5, chaos) \
_ (6, ieee_802) \
_ (7, arcnet) \
_ (8, hyperchannel) \
_ (9, lanstar) \
_ (10, autonet) \
_ (11, localtalk) \
_ (12, localnet) \
_ (13, ultra_link) \
_ (14, smds) \
_ (15, frame_relay) \
_ (16, atm) \
_ (17, hdlc) \
_ (18, fibre_channel) \
_ (19, atm19) \
_ (20, serial_line) \
_ (21, atm21) \
_ (22, mil_std_188_220) \
_ (23, metricom) \
_ (24, ieee_1394) \
_ (25, mapos) \
_ (26, twinaxial) \
_ (27, eui_64) \
_ (28, hiparp) \
_ (29, iso_7816_3) \
_ (30, arpsec) \
_ (31, ipsec_tunnel) \
_ (32, infiniband) \
_ (33, cai) \
_ (34, wiegand) \
_ (35, pure_ip) \
_ (36, hw_exp1) \
_ (256, hw_exp2)

Definition at line 23 of file arp_packet.h.

◆ foreach_ethernet_arp_opcode

#define foreach_ethernet_arp_opcode
Value:
_ (reserved) \
_ (request) \
_ (reply) \
_ (reverse_request) \
_ (reverse_reply) \
_ (drarp_request) \
_ (drarp_reply) \
_ (drarp_error) \
_ (inarp_request) \
_ (inarp_reply) \
_ (arp_nak) \
_ (mars_request) \
_ (mars_multi) \
_ (mars_mserv) \
_ (mars_join) \
_ (mars_leave) \
_ (mars_nak) \
_ (mars_unserv) \
_ (mars_sjoin) \
_ (mars_sleave) \
_ (mars_grouplist_request) \
_ (mars_grouplist_reply) \
_ (mars_redirect_map) \
_ (mapos_unarp) \
_ (exp1) \
_ (exp2)
vhost_user_req_t request
Definition: vhost_user.h:140

Definition at line 63 of file arp_packet.h.

Enumeration Type Documentation

◆ ethernet_arp_hardware_type_t

Enumerator
foreach_ethernet_arp_hardware_type 

Definition at line 91 of file arp_packet.h.

◆ ethernet_arp_opcode_t

Enumerator
ETHERNET_ARP_N_OPCODE 

Definition at line 98 of file arp_packet.h.

◆ ip4_arp_error_t

Enumerator
IP4_ARP_ERROR_THROTTLED 
IP4_ARP_ERROR_RESOLVED 
IP4_ARP_ERROR_NO_BUFFERS 
IP4_ARP_ERROR_REQUEST_SENT 
IP4_ARP_ERROR_NON_ARP_ADJ 
IP4_ARP_ERROR_NO_SOURCE_ADDRESS 

Definition at line 112 of file arp_packet.h.

◆ ip4_arp_next_t

Enumerator
IP4_ARP_NEXT_DROP 
IP4_ARP_N_NEXT 

Definition at line 106 of file arp_packet.h.

Function Documentation

◆ CLIB_PACKED()

typedef CLIB_PACKED ( struct { mac_address_t mac;ip4_address_t ip4;}  )

◆ send_ip4_garp()

void send_ip4_garp ( vlib_main_t vm,
u32  sw_if_index 
)

Definition at line 3011 of file arp.c.

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

◆ send_ip4_garp_w_addr()

void send_ip4_garp_w_addr ( vlib_main_t vm,
const ip4_address_t ip4_addr,
u32  sw_if_index 
)

Definition at line 3020 of file arp.c.

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

◆ STATIC_ASSERT()

STATIC_ASSERT ( sizeof(ethernet_arp_ip4_over_ethernet_address_t)  = =10,
"Packet ethernet address and IP4 address too big"   
)