6 * Address Resolution Protocol
10 #include <gpxe/tables.h>
15 /** A network-layer protocol that relies upon ARP */
16 struct arp_net_protocol
{
17 /** Network-layer protocol */
18 struct net_protocol
*net_protocol
;
19 /** Check existence of address
21 * @v netdev Network device
22 * @v net_addr Network-layer address
23 * @ret rc Return status code
25 int ( * check
) ( struct net_device
*netdev
,
26 const void *net_addr
);
29 /** Declare an ARP protocol */
30 #define __arp_net_protocol \
31 __table ( struct arp_net_protocol, arp_net_protocols, 01 )
33 extern struct net_protocol arp_protocol
;
35 extern int arp_resolve ( struct net_device
*netdev
,
36 struct net_protocol
*net_protocol
,
37 const void *dest_net_addr
,
38 const void *source_net_addr
,
41 #endif /* _GPXE_ARP_H */