⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ethernet.h

📁 Glibc 2.3.2源代码(解压后有100多M)
💻 H
字号:
/* Copyright (C) 1997 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, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  *//* Based on the FreeBSD version of this file. Curiously, that file   lacks a copyright in the header. */#ifndef __NET_ETHERNET_H#define __NET_ETHERNET_H 1#include <sys/cdefs.h>#include <sys/types.h>#include <net/if_ether.h>     /* IEEE 802.3 Ethernet constants */__BEGIN_DECLS/* This is a name for the 48 bit ethernet address available on many   systems.  */struct ether_addr{  u_int8_t ether_addr_octet[ETH_ALEN];};/* 10Mb/s ethernet header */struct ether_header{  u_int8_t  ether_dhost[ETH_ALEN];	/* destination eth addr	*/  u_int8_t  ether_shost[ETH_ALEN];	/* source ether addr	*/  u_int16_t ether_type;		        /* packet type ID field	*/};/* Ethernet protocol ID's */#define	ETHERTYPE_PUP		0x0200          /* Xerox PUP */#define	ETHERTYPE_IP		0x0800		/* IP */#define	ETHERTYPE_ARP		0x0806		/* Address resolution */#define	ETHERTYPE_REVARP	0x8035		/* Reverse ARP */#define	ETHER_ADDR_LEN	ETH_ALEN                 /* size of ethernet addr */#define	ETHER_TYPE_LEN	2                        /* bytes in type field */#define	ETHER_CRC_LEN	4                        /* bytes in CRC field */#define	ETHER_HDR_LEN	ETH_HLEN                 /* total octets in header */#define	ETHER_MIN_LEN	(ETH_ZLEN + ETH_CRC_LEN) /* min packet length */#define	ETHER_MAX_LEN	(ETH_FRAME_LEN + ETH_CRC_LEN) /* max packet length *//* make sure ethenet length is valid */#define	ETHER_IS_VALID_LEN(foo)	\	((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)/* * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have * (type-ETHERTYPE_TRAIL)*512 bytes of data followed * by an ETHER type (as given above) and then the (variable-length) header. */#define	ETHERTYPE_TRAIL		0x1000		/* Trailer packet */#define	ETHERTYPE_NTRAILER	16#define	ETHERMTU	ETH_DATA_LEN#define	ETHERMIN	(ETHER_MIN_LEN-ETHER_HDR_LEN-ETHER_CRC_LEN)__END_DECLS#endif /* net/ethernet.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -