cregit-Linux how code gets into the kernel

Release 4.7 include/uapi/linux/if_arp.h

/*
 * INET         An implementation of the TCP/IP protocol suite for the LINUX
 *              operating system.  INET is implemented using the  BSD Socket
 *              interface as the means of communication with the user level.
 *
 *              Global definitions for the ARP (RFC 826) protocol.
 *
 * Version:     @(#)if_arp.h    1.0.1   04/16/93
 *
 * Authors:     Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
 *              Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source.
 *              Ross Biro
 *              Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
 *              Florian La Roche,
 *              Jonathan Layes <layes@loran.com>
 *              Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
 *
 *              This program is free software; you can redistribute it and/or
 *              modify it under the terms of the GNU General Public License
 *              as published by the Free Software Foundation; either version
 *              2 of the License, or (at your option) any later version.
 */
#ifndef _UAPI_LINUX_IF_ARP_H

#define _UAPI_LINUX_IF_ARP_H

#include <linux/netdevice.h>

/* 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_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                   */

/* Dummy types for non ARP hardware */

#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_HDLC	ARPHRD_CISCO

#define ARPHRD_LAPB	516		
/* LAPB                         */

#define ARPHRD_DDCMP    517		
/* Digital's DDCMP protocol     */

#define ARPHRD_RAWHDLC	518		
/* Raw HDLC                     */


#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 device              */

#define ARPHRD_LOCALTLK 773		
/* Localtalk device             */

#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 header               */

#define ARPHRD_6LOWPAN	825		
/* IPv6 over LoWPAN             */


#define ARPHRD_VOID	  0xFFFF	
/* Void type, nothing is known */

#define ARPHRD_NONE	  0xFFFE	
/* zero header length */

/* ARP protocol opcodes. */

#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                 */


/* ARP ioctl request. */

struct arpreq {
  
struct sockaddr	arp_pa;		/* protocol address             */
  
struct sockaddr	arp_ha;		/* hardware address             */
  
int			arp_flags;	/* flags                        */
  
struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */
  
char			arp_dev[16];
};


struct arpreq_old {
  
struct sockaddr	arp_pa;		/* protocol address             */
  
struct sockaddr	arp_ha;		/* hardware address             */
  
int			arp_flags;	/* flags                        */
  
struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */
};

/* ARP Flag values. */

#define ATF_COM		0x02		
/* completed entry (ha valid)   */

#define	ATF_PERM	0x04		
/* permanent entry              */

#define	ATF_PUBL	0x08		
/* publish entry                */

#define	ATF_USETRAILERS	0x10		
/* has requested trailers       */

#define ATF_NETMASK     0x20            
/* want to use a netmask (only
                                           for proxy entries) */

#define ATF_DONTPUB	0x40		
/* don't answer this addresses  */

/*
 *      This structure defines an ethernet arp header.
 */


struct arphdr {
	
__be16		ar_hrd;		/* format of hardware address   */
	
__be16		ar_pro;		/* format of protocol address   */
	
unsigned char	ar_hln;		/* length of hardware address   */
	
unsigned char	ar_pln;		/* length of protocol address   */
	
__be16		ar_op;		/* ARP opcode (command)         */

#if 0
	 /*
          *      Ethernet looks like this : This bit is variable sized however...
          */
	unsigned char           ar_sha[ETH_ALEN];	/* sender hardware address      */
	unsigned char           ar_sip[4];		/* sender IP address            */
	unsigned char           ar_tha[ETH_ALEN];	/* target hardware address      */
	unsigned char           ar_tip[4];		/* target IP address            */
#endif

};


#endif /* _UAPI_LINUX_IF_ARP_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
david howellsdavid howells48797.99%133.33%
daniel borkmanndaniel borkmann51.01%133.33%
jukka rissanenjukka rissanen51.01%133.33%
Total497100.00%3100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}