ARP: expand the set of ARPHRD_ definitions from both IANA and Linxu.

While we're at it, fix some typoes, and clean up the white space.

Change-Id: I32cdcb6603bcf76df26f74bd60cdaadc01b28693
Reviewed-on: https://code.wireshark.org/review/37171
Petri-Dish: Guy Harris <gharris@sonic.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <gharris@sonic.net>
This commit is contained in:
Guy Harris 2020-05-09 04:29:46 -07:00 committed by Guy Harris
parent 569f3bd611
commit 366415bcc3
2 changed files with 160 additions and 39 deletions

View File

@ -17,40 +17,48 @@ extern "C" {
/* Definitions taken from Linux "linux/if_arp.h" header file, and from
http://www.iana.org/assignments/arp-parameters
*/
/* ARP protocol HARDWARE identifiers. */
#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_HYPERCH 8 /* Hyperchannel */
#define ARPHRD_LANSTAR 9 /* Lanstar */
#define ARPHRD_AUTONET 10 /* Autonet Short Address */
#define ARPHRD_LOCALTLK 11 /* Localtalk */
#define ARPHRD_LOCALNET 12 /* LocalNet (IBM PCNet/Sytek LocalNET) */
#define ARPHRD_ULTRALNK 13 /* Ultra link */
#define ARPHRD_SMDS 14 /* SMDS */
#define ARPHRD_DLCI 15 /* Frame Relay DLCI */
#define ARPHRD_ATM 16 /* ATM */
#define ARPHRD_HDLC 17 /* HDLC */
#define ARPHRD_FIBREC 18 /* Fibre Channel */
#define ARPHRD_ATM2225 19 /* ATM (RFC 2225) */
#define ARPHRD_SERIAL 20 /* Serial Line */
#define ARPHRD_ATM2 21 /* ATM */
#define ARPHRD_MS188220 22 /* MIL-STD-188-220 */
#define ARPHRD_METRICOM 23 /* Metricom STRIP */
#define ARPHRD_IEEE1394 24 /* IEEE 1394.1995 */
#define ARPHRD_MAPOS 25 /* MAPOS */
#define ARPHRD_TWINAX 26 /* Twinaxial */
#define ARPHRD_EUI_64 27 /* EUI-64 */
#define ARPHRD_HIPARP 28 /* HIPARP */
/*
* ARP protocol HARDWARE identifiers.
*
* From
*
* https://www.iana.org/assignments/arp-parameters/arp-parameters.xhtml#arp-parameters-2
*
* XXX - ARPHRD_NETROM is from Linux linux/if_arp.h file; 0 is reserved,
* probably permanently, by RFC 5494.
*/
#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_HYPERCH 8 /* Hyperchannel */
#define ARPHRD_LANSTAR 9 /* Lanstar */
#define ARPHRD_AUTONET 10 /* Autonet Short Address */
#define ARPHRD_LOCALTLK 11 /* Localtalk */
#define ARPHRD_LOCALNET 12 /* LocalNet (IBM PCNet/Sytek LocalNET) */
#define ARPHRD_ULTRALNK 13 /* Ultra link */
#define ARPHRD_SMDS 14 /* SMDS */
#define ARPHRD_DLCI 15 /* Frame Relay DLCI */
#define ARPHRD_ATM 16 /* ATM */
#define ARPHRD_HDLC 17 /* HDLC */
#define ARPHRD_FIBREC 18 /* Fibre Channel */
#define ARPHRD_ATM2225 19 /* ATM (RFC 2225) */
#define ARPHRD_SERIAL 20 /* Serial Line */
#define ARPHRD_ATM2 21 /* ATM */
#define ARPHRD_MS188220 22 /* MIL-STD-188-220 */
#define ARPHRD_METRICOM 23 /* Metricom STRIP */
#define ARPHRD_IEEE1394 24 /* IEEE 1394.1995 */
#define ARPHRD_MAPOS 25 /* MAPOS */
#define ARPHRD_TWINAX 26 /* Twinaxial */
#define ARPHRD_EUI_64 27 /* EUI-64 */
#define ARPHRD_HIPARP 28 /* HIPARP */
#define ARPHRD_IP_ARP_ISO_7816_3 29 /* IP and ARP over ISO 7816-3 */
#define ARPHRD_ARPSEC 30 /* ARPSec */
#define ARPHRD_IPSEC_TUNNEL 31 /* IPsec tunnel */
@ -58,15 +66,78 @@ extern "C" {
#define ARPHRD_TIA_102_PRJ_25_CAI 33 /* TIA-102 Project 25 CAI */
#define ARPHRD_WIEGAND_INTERFACE 34 /* Wiegand Interface */
#define ARPHRD_PURE_IP 35 /* Pure IP */
#define ARPHDR_HW_EXP1 36 /* HW_EXP1 */
#define ARPHDR_HFI 37 /* HFI */
#define ARPHDR_HW_EXP2 256 /* HW_EXP2 */
#define ARPHRD_HW_EXP1 36 /* HW_EXP1 */
#define ARPHRD_HFI 37 /* HFI */
#define ARPHRD_HW_EXP2 256 /* HW_EXP2 */
#define ARPHRD_AETHERNET 257 /* AEthernet */
/* Virtual ARP types for non ARP hardware used in Linux cooked mode. */
/*
* Virtual ARP types for non ARP hardware used in Linux cooked mode,
* from Linux linux/if_arp.h file.
*
* XXX - note that these values already have eaten into the values
* registered in the IANA documentation. Should there be separate sets
* of values, and separate value_string tables, one solely for ARP
* hardware values, and the other with the Linux values, to use with,
* for example, Linux cooked capture headers? The values 512 and
* above are probably *less* likely to collide.
*/
/*#define ARPHRD_SLIP 256*/
/*#define ARPHRD_CSLIP 257 */
#define ARPHRD_SLIP6 258
#define ARPHRD_CSLIP6 259
#define ARPHRD_RSRVD 260 /* Notional KISS type */
#define ARPHRD_ADAPT 264
#define ARPHRD_ROSE 270
#define ARPHRD_X25 271 /* CCITT X.25 */
#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */
#define ARPHRD_CAN 280 /* Controller Area Network */
#define ARPHRD_PPP 512
#define ARPHRD_CISCO 513 /* Cisco HDLC */
#define ARPHRD_LAPB 516 /* LAPB */
#define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */
#define ARPHRD_RAWHDLC 518 /* Raw HDLC */
#define ARPHRD_RAWIP 519 /* Raw IP */
#define ARPHRD_TUNNEL 768 /* IPIP tunnel */
#define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */
#define ARPHRD_FRAD 770 /* Frame Relay Access Device */
#define ARPHRD_SKIP 771 /* SKIP vif */
#define ARPHRD_LOOPBACK 772 /* Loopback */
#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface */
#define ARPHRD_BIF 775 /* AP1000 BIF */
#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4 */
#define ARPHRD_IPDDP 777 /* IP over DDP tunneller */
#define ARPHRD_IPGRE 778 /* GRE over IP */
#define ARPHRD_PIMREG 779 /* PIMSM register interface */
#define ARPHRD_HIPPI 780 /* High Performance Parallel Interface */
#define ARPHRD_ASH 781 /* Nexus 64Mbps Ash */
#define ARPHRD_ECONET 782 /* Acorn Econet */
#define ARPHRD_IRDA 783 /* Linux-IrDA */
/* ARP works differently on different FC media .. so */
#define ARPHRD_FCPP 784 /* Point to point fibrechannel */
#define ARPHRD_FCAL 785 /* Fibrechannel arbitrated loop */
#define ARPHRD_FCPL 786 /* Fibrechannel public loop */
#define ARPHRD_FCFABRIC 787 /* Fibrechannel fabric */
/* 787->799 reserved for fibrechannel media types */
#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */
#define ARPHRD_IEEE80211 801 /* IEEE 802.11 */
#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */
#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */
#define ARPHRD_IEEE802154 804
#define ARPHRD_IEEE802154_MONITOR 805 /* IEEE 802.15.4 network monitor */
#define ARPHRD_PHONET 820 /* PhoNet media type */
#define ARPHRD_PHONET_PIPE 821 /* PhoNet pipe header */
#define ARPHRD_CAIF 822 /* CAIF media type */
#define ARPHRD_IP6GRE 823 /* GRE over IPv6 */
#define ARPHRD_NETLINK 824 /* netlink */
#define ARPHRD_6LOWPAN 825 /* IPv6 over LoWPAN */
#define ARPHRD_VSOCKMON 826 /* Vsock monitor header */
#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */
#define ARPHRD_NONE 0xFFFE /* zero header length */
#ifdef __cplusplus
}

View File

@ -483,14 +483,64 @@ const value_string arp_hrd_vals[] = {
{ARPHRD_TIA_102_PRJ_25_CAI, "TIA-102 Project 25 CAI" },
{ARPHRD_WIEGAND_INTERFACE, "Wiegand Interface" },
{ARPHRD_PURE_IP, "Pure IP" },
{ARPHDR_HW_EXP1, "Experimental 1" },
{ARPHDR_HFI, "HFI" },
{ARPHDR_HW_EXP2, "Experimental 2" },
{ARPHRD_HW_EXP1, "Experimental 1" },
{ARPHRD_HFI, "HFI" },
{ARPHRD_HW_EXP2, "Experimental 2" },
{ARPHRD_AETHERNET, "AEthernet" },
/* Virtual ARP types for non ARP hardware used in Linux cooked mode. */
{ARPHRD_RSRVD, "Notional KISS type" },
{ARPHRD_ADAPT, "ADAPT" },
{ARPHRD_ROSE, "ROSE" },
{ARPHRD_X25, "CCITT X.25" },
{ARPHRD_HWX25, "Boards with X.25 in firmware"},
{ARPHRD_CAN, "Controller Area Network" },
{ARPHRD_PPP, "PPP" },
{ARPHRD_CISCO, "Cisco HDLC" },
{ARPHRD_LAPB, "LAPB" },
{ARPHRD_DDCMP, "Digital's DDCMP protocol" },
{ARPHRD_RAWHDLC, "Raw HDLC" },
{ARPHRD_RAWIP, "Raw IP" },
{ARPHRD_TUNNEL, "IPIP tunnel" },
{ARPHRD_TUNNEL6, "IP6IP6 tunnel" },
{ARPHRD_FRAD, "Frame Relay Access Device" },
{ARPHRD_SKIP, "SKIP vif" },
{ARPHRD_LOOPBACK, "Loopback" },
{ARPHRD_FDDI, "Fiber Distributed Data Interface"},
{ARPHRD_BIF, "AP1000 BIF" },
{ARPHRD_SIT, "sit0 device - IPv6-in-IPv4" },
{ARPHRD_IPDDP, "IP over DDP tunneller" },
{ARPHRD_IPGRE, "GRE over IP" },
{ARPHRD_PIMREG, "PIMSM register interface" },
{ARPHRD_HIPPI, "High Performance Parallel Interface"},
{ARPHRD_ASH, "Nexus 64Mbps Ash" },
{ARPHRD_ECONET, "Acorn Econet" },
{ARPHRD_IRDA, "Linux-IrDA" },
/* ARP works differently on different FC media .. so */
{ARPHRD_FCPP, "Point to point fibrechannel" },
{ARPHRD_FCAL, "Fibrechannel arbitrated loop" },
{ARPHRD_FCPL, "Fibrechannel public loop" },
{ARPHRD_FCFABRIC, "Fibrechannel fabric"},
/* 787->799 reserved for fibrechannel media types */
{ARPHRD_IEEE802_TR, "Magic type ident for TR" },
{ARPHRD_IEEE80211, "IEEE 802.11" },
{ARPHRD_IEEE80211_PRISM, "IEEE 802.11 + Prism2 header" },
{ARPHRD_IEEE80211_RADIOTAP, "IEEE 802.11 + radiotap header" },
{ARPHRD_IEEE802154, "IEEE 802.15.4" },
{ARPHRD_IEEE802154_MONITOR, "IEEE 802.15.4 network monitor" },
{ARPHRD_PHONET, "PhoNet media type" },
{ARPHRD_PHONET_PIPE, "PhoNet pipe header" },
{ARPHRD_CAIF, "CAIF media type" },
{ARPHRD_IP6GRE, "GRE over IPv6" },
{ARPHRD_NETLINK, "Netlink" },
{0, NULL } };
{ARPHRD_6LOWPAN, "IPv6 over LoWPAN" },
{ARPHRD_VSOCKMON, "Vsock monitor header" },
{ARPHRD_VOID, "Void type, nothing is known" },
{ARPHRD_NONE, "zero header length" },
{0, NULL }
};
/* Offsets of fields within an ARP packet. */
#define AR_HRD 0