mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright (C) 1997-2016 Free Software Foundation, Inc.
 | |
|    This file is part of the GNU C Library.
 | |
| 
 | |
|    The GNU C Library is free software; you can redistribute it and/or
 | |
|    modify it under the terms of the GNU Lesser General Public
 | |
|    License as published by the Free Software Foundation; either
 | |
|    version 2.1 of the License, or (at your option) any later version.
 | |
| 
 | |
|    The GNU C Library is distributed in the hope that it will be useful,
 | |
|    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
|    Lesser General Public License for more details.
 | |
| 
 | |
|    You should have received a copy of the GNU Lesser General Public
 | |
|    License along with the GNU C Library; if not, see
 | |
|    <http://www.gnu.org/licenses/>.  */
 | |
| 
 | |
| #ifndef _NET_IF_ETHER_H
 | |
| #define _NET_IF_ETHER_H	1
 | |
| 
 | |
| /*
 | |
|  *	IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
 | |
|  *	and FCS/CRC (frame check sequence).
 | |
|  */
 | |
| 
 | |
| #define ETH_ALEN	6		/* Octets in one ethernet addr	 */
 | |
| #define ETH_HLEN	14		/* Total octets in header.	 */
 | |
| #define ETH_ZLEN	60		/* Min. octets in frame sans FCS */
 | |
| #define ETH_DATA_LEN	1500		/* Max. octets in payload	 */
 | |
| #define ETH_FRAME_LEN	1514		/* Max. octets in frame sans FCS */
 | |
| 
 | |
| /*
 | |
|  *	These are the defined Ethernet Protocol ID's.
 | |
|  */
 | |
| 
 | |
| #define ETH_P_LOOP	0x0060		/* Ethernet Loopback packet	*/
 | |
| #define ETH_P_ECHO	0x0200		/* Ethernet Echo packet		*/
 | |
| #define ETH_P_PUP	0x0400		/* Xerox PUP packet		*/
 | |
| #define ETH_P_IP	0x0800		/* Internet Protocol packet	*/
 | |
| #define ETH_P_X25	0x0805		/* CCITT X.25			*/
 | |
| #define ETH_P_ARP	0x0806		/* Address Resolution packet	*/
 | |
| #define	ETH_P_BPQ	0x08FF		/* G8BPQ AX.25 Ethernet Packet	[ NOT AN OFFICIALLY REGISTERED ID ] */
 | |
| #define ETH_P_DEC       0x6000          /* DEC Assigned proto           */
 | |
| #define ETH_P_DNA_DL    0x6001          /* DEC DNA Dump/Load            */
 | |
| #define ETH_P_DNA_RC    0x6002          /* DEC DNA Remote Console       */
 | |
| #define ETH_P_DNA_RT    0x6003          /* DEC DNA Routing              */
 | |
| #define ETH_P_LAT       0x6004          /* DEC LAT                      */
 | |
| #define ETH_P_DIAG      0x6005          /* DEC Diagnostics              */
 | |
| #define ETH_P_CUST      0x6006          /* DEC Customer use             */
 | |
| #define ETH_P_SCA       0x6007          /* DEC Systems Comms Arch       */
 | |
| #define ETH_P_RARP      0x8035		/* Reverse Addr Res packet	*/
 | |
| #define ETH_P_ATALK	0x809B		/* Appletalk DDP		*/
 | |
| #define ETH_P_AARP	0x80F3		/* Appletalk AARP		*/
 | |
| #define ETH_P_IPX	0x8137		/* IPX over DIX			*/
 | |
| #define ETH_P_IPV6	0x86DD		/* IPv6 over bluebook		*/
 | |
| 
 | |
| /*
 | |
|  *	Non DIX types. Won't clash for 1500 types.
 | |
|  */
 | |
| 
 | |
| #define ETH_P_802_3	0x0001		/* Dummy type for 802.3 frames  */
 | |
| #define ETH_P_AX25	0x0002		/* Dummy protocol id for AX.25  */
 | |
| #define ETH_P_ALL	0x0003		/* Every packet (be careful!!!) */
 | |
| #define ETH_P_802_2	0x0004		/* 802.2 frames 		*/
 | |
| #define ETH_P_SNAP	0x0005		/* Internal only		*/
 | |
| #define ETH_P_DDCMP     0x0006          /* DEC DDCMP: Internal only     */
 | |
| #define ETH_P_WAN_PPP   0x0007          /* Dummy type for WAN PPP frames*/
 | |
| #define ETH_P_PPP_MP    0x0008          /* Dummy type for PPP MP frames */
 | |
| #define ETH_P_LOCALTALK 0x0009		/* Localtalk pseudo type 	*/
 | |
| #define ETH_P_PPPTALK	0x0010		/* Dummy type for Atalk over PPP*/
 | |
| #define ETH_P_TR_802_2	0x0011		/* 802.2 frames 		*/
 | |
| 
 | |
| /*
 | |
|  *	This is an Ethernet frame header.
 | |
|  */
 | |
| 
 | |
| struct ethhdr
 | |
| {
 | |
|   unsigned char	h_dest[ETH_ALEN];	/* destination eth addr	*/
 | |
|   unsigned char	h_source[ETH_ALEN];	/* source ether addr	*/
 | |
|   unsigned short int h_proto;		/* packet type ID field	*/
 | |
| };
 | |
| 
 | |
| #endif	/* net/if_ether.h */
 |