iPXE
Data Structures | Defines | Functions | Variables
if_arp.h File Reference

Address Resolution Protocol constants and types. More...

#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  arphdr
 An ARP header. More...

Defines

#define ARPHRD_NETROM   0
 from KA9Q: NET/ROM pseudo
#define ARPHRD_ETHER   1
 Ethernet 10Mbps.
#define ARPHRD_EETHER   2
 Experimental Ethernet.
#define ARPHRD_AX25   3
 AX.25 Level 2.
#define ARPHRD_PRONET   4
 PROnet token ring.
#define ARPHRD_CHAOS   5
 Chaosnet.
#define ARPHRD_IEEE802   6
 IEEE 802.2 Ethernet/TR/TB.
#define ARPHRD_ARCNET   7
 ARCnet.
#define ARPHRD_APPLETLK   8
 APPLEtalk.
#define ARPHRD_DLCI   15
 Frame Relay DLCI.
#define ARPHRD_ATM   19
 ATM.
#define ARPHRD_METRICOM   23
 Metricom STRIP (new IANA id)
#define ARPHRD_IEEE1394   24
 IEEE 1394 IPv4 - RFC 2734.
#define ARPHRD_EUI64   27
 EUI-64.
#define ARPHRD_INFINIBAND   32
 InfiniBand.
#define ARPOP_REQUEST   1
 ARP request.
#define ARPOP_REPLY   2
 ARP reply.
#define ARPOP_RREQUEST   3
 RARP request.
#define ARPOP_RREPLY   4
 RARP reply.
#define ARPOP_InREQUEST   8
 InARP request.
#define ARPOP_InREPLY   9
 InARP reply.
#define ARPOP_NAK   10
 (ATM)ARP NAK

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
struct arphdr __attribute__ ((packed))
static void * arp_sender_ha (struct arphdr *arphdr)
 ARP packet sender hardware address.
static void * arp_sender_pa (struct arphdr *arphdr)
 ARP packet sender protocol address.
static void * arp_target_ha (struct arphdr *arphdr)
 ARP packet target hardware address.
static void * arp_target_pa (struct arphdr *arphdr)
 ARP packet target protocol address.
static size_t arp_len (struct arphdr *arphdr)
 ARP packet length.

Variables

uint16_t ar_hrd
 Link-layer protocol.
uint16_t ar_pro
 Network-layer protocol.
uint8_t ar_hln
 Link-layer address length.
uint8_t ar_pln
 Network-layer address length.
uint16_t ar_op
 ARP opcode.

Detailed Description

Address Resolution Protocol constants and types.

Definition in file if_arp.h.


Define Documentation

#define ARPHRD_NETROM   0

from KA9Q: NET/ROM pseudo

Definition at line 15 of file if_arp.h.

#define ARPHRD_ETHER   1

Ethernet 10Mbps.

Definition at line 16 of file if_arp.h.

Referenced by fcoe_probe(), gdbudp_recv(), and ipoib_translate_rx_arp().

#define ARPHRD_EETHER   2

Experimental Ethernet.

Definition at line 17 of file if_arp.h.

#define ARPHRD_AX25   3

AX.25 Level 2.

Definition at line 18 of file if_arp.h.

#define ARPHRD_PRONET   4

PROnet token ring.

Definition at line 19 of file if_arp.h.

#define ARPHRD_CHAOS   5

Chaosnet.

Definition at line 20 of file if_arp.h.

#define ARPHRD_IEEE802   6

IEEE 802.2 Ethernet/TR/TB.

Definition at line 21 of file if_arp.h.

#define ARPHRD_ARCNET   7

ARCnet.

Definition at line 22 of file if_arp.h.

#define ARPHRD_APPLETLK   8

APPLEtalk.

Definition at line 23 of file if_arp.h.

#define ARPHRD_DLCI   15

Frame Relay DLCI.

Definition at line 24 of file if_arp.h.

#define ARPHRD_ATM   19

ATM.

Definition at line 25 of file if_arp.h.

#define ARPHRD_METRICOM   23

Metricom STRIP (new IANA id)

Definition at line 26 of file if_arp.h.

#define ARPHRD_IEEE1394   24

IEEE 1394 IPv4 - RFC 2734.

Definition at line 27 of file if_arp.h.

#define ARPHRD_EUI64   27

EUI-64.

Definition at line 28 of file if_arp.h.

#define ARPHRD_INFINIBAND   32

InfiniBand.

Definition at line 29 of file if_arp.h.

Referenced by ipoib_translate_tx_arp().

#define ARPOP_REQUEST   1

ARP request.

Definition at line 32 of file if_arp.h.

Referenced by arp_rx(), arp_tx_request(), and gdbudp_recv().

#define ARPOP_REPLY   2

ARP reply.

Definition at line 33 of file if_arp.h.

Referenced by arp_rx(), gdbudp_recv(), ipoib_translate_rx_arp(), and ipoib_translate_tx_arp().

#define ARPOP_RREQUEST   3

RARP request.

Definition at line 34 of file if_arp.h.

#define ARPOP_RREPLY   4

RARP reply.

Definition at line 35 of file if_arp.h.

#define ARPOP_InREQUEST   8

InARP request.

Definition at line 36 of file if_arp.h.

#define ARPOP_InREPLY   9

InARP reply.

Definition at line 37 of file if_arp.h.

#define ARPOP_NAK   10

(ATM)ARP NAK

Definition at line 38 of file if_arp.h.


Function Documentation

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )
struct arphdr __attribute__ ( (packed)  )
static void* arp_sender_ha ( struct arphdr arphdr) [inline, static]

ARP packet sender hardware address.

Parameters:
arphdrARP header
Return values:
ar_shaSender hardware address

Definition at line 71 of file if_arp.h.

Referenced by arp_rx(), arp_sender_pa(), gdbudp_recv(), ipoib_translate_rx_arp(), and ipoib_translate_tx_arp().

                                                             {
        return ( ( ( void * ) arphdr ) + sizeof ( *arphdr ) );
}
static void* arp_sender_pa ( struct arphdr arphdr) [inline, static]

ARP packet sender protocol address.

Parameters:
arphdrARP header
Return values:
ar_spaSender protocol address

Definition at line 80 of file if_arp.h.

References arphdr::ar_hln, and arp_sender_ha().

Referenced by arp_rx(), arp_target_ha(), gdbudp_recv(), ipoib_translate_rx_arp(), and ipoib_translate_tx_arp().

                                                             {
        return ( arp_sender_ha ( arphdr ) + arphdr->ar_hln );
}
static void* arp_target_ha ( struct arphdr arphdr) [inline, static]

ARP packet target hardware address.

Parameters:
arphdrARP header
Return values:
ar_thaTarget hardware address

Definition at line 89 of file if_arp.h.

References arphdr::ar_pln, and arp_sender_pa().

Referenced by arp_rx(), arp_target_pa(), gdbudp_recv(), ipoib_translate_rx_arp(), and ipoib_translate_tx_arp().

                                                             {
        return ( arp_sender_pa ( arphdr ) + arphdr->ar_pln );
}
static void* arp_target_pa ( struct arphdr arphdr) [inline, static]

ARP packet target protocol address.

Parameters:
arphdrARP header
Return values:
ar_tpaTarget protocol address

Definition at line 98 of file if_arp.h.

References arphdr::ar_hln, and arp_target_ha().

Referenced by arp_rx(), gdbudp_recv(), ipoib_translate_rx_arp(), and ipoib_translate_tx_arp().

                                                             {
        return ( arp_target_ha ( arphdr ) + arphdr->ar_hln );
}
static size_t arp_len ( struct arphdr arphdr) [inline, static]

ARP packet length.

Parameters:
arphdrARP header
Return values:
lenLength (including header)

Definition at line 107 of file if_arp.h.

References arphdr::ar_hln, and arphdr::ar_pln.

Referenced by arp_rx().

                                                       {
        return ( sizeof ( *arphdr ) +
                 ( 2 * ( arphdr->ar_hln + arphdr->ar_pln ) ) );
}

Variable Documentation

Link-layer protocol.

This is an ARPHRD_XXX constant

Definition at line 69 of file if_arp.h.

Network-layer protocol.

This is, for Ethernet, an ETH_P_XXX constant.

Definition at line 74 of file if_arp.h.

Link-layer address length.

Definition at line 76 of file if_arp.h.

Network-layer address length.

Definition at line 78 of file if_arp.h.

ARP opcode.

Definition at line 80 of file if_arp.h.