12 #define HW_TYPE_ETHER 1
13 #define HW_TYPE_ETHER_3MB 2
14 #define HW_TYPE_AX25 3
15 #define HW_TYPE_TOKEN 6
16 #define HW_TYPE_ARCNET 7
17 #define HW_TYPE_APPLETALK 8
18 #define HW_TYPE_FDDI 10
27 eth_address destination;
38 BYTE data [ETH_MAX_DATA];
47 eth_address destination;
60 BYTE data [VLAN_MAX_DATA];
73 mac_address destination;
98 BYTE data [TOK_MAX_DATA];
117 BYTE snap_orgcode[3];
118 BYTE snap_ethertype[2];
140 eth_address destination;
155 BYTE data [FDDI_MAX_DATA];
159 #define FDDI_DSAP 0xAA
160 #define FDDI_SSAP 0xAA
161 #define FDDI_CTRL 0x03
162 #define FDDI_ORG 0x00
184 #define ARC_TYPE_OFS 2
192 BYTE data [ARCNET_MAX_DATA];
227 extern const char *_eth_not_init;
234 #if defined(USE_MULTICAST)
266 #if defined(NOT_USED)
275 #define MAC_HDR(ip) _eth_mac_hdr(ip)
276 #define MAC_DST(ip) _eth_mac_dst(ip)
277 #define MAC_SRC(ip) _eth_mac_src(ip)
278 #define MAC_TYP(ip) _eth_mac_typ(ip)
280 #define MAC_HDR(ip) (void*) ((BYTE*)(ip) - _pkt_ip_ofs)
282 #define MAC_DST(ip) (void*) ((BYTE*)(ip) - \
283 (_pktdevclass == PDCLASS_TOKEN ? _pkt_ip_ofs-2 : \
284 _pktdevclass == PDCLASS_ARCNET ? _pkt_ip_ofs-1 : \
285 _pktdevclass == PDCLASS_FDDI ? _pkt_ip_ofs-5 : \
288 #define MAC_SRC(ip) (void*) ((BYTE*)(ip) - \
289 (_pktdevclass == PDCLASS_TOKEN ? _pkt_ip_ofs-8 : \
290 _pktdevclass == PDCLASS_ARCNET ? _pkt_ip_ofs : \
291 _pktdevclass == PDCLASS_FDDI ? _pkt_ip_ofs-7 : \
294 #define MAC_TYP(ip) (*(WORD*) ((BYTE*)(ip) - \
295 (_pktdevclass == PDCLASS_ARCNET ? _pkt_ip_ofs-2 : 2)))
306 #define SET_PEER_MAC_ADDR(tcb,ip) do { \
308 memcpy (&(tcb)->his_ethaddr[0], MAC_SRC(ip), 6); \
311 #define CLR_PEER_MAC_ADDR(tcb) do { \
313 memset (&(tcb)->his_ethaddr[0], 0, 6); \
BOOL _eth_is_init
we are initialised
Multicast internal structure.
BOOL _eth_SwsVpkt
for DOS and Win32 programs
BOOL _eth_wanpacket
for Win32 using an WanPacket adapter
BOOL _eth_ndis3pkt
for DOS-programs only
mac_address _eth_addr
Local link-layer source address.
struct _eth_last_info _eth_last
Sizes and timestamps of last packet recv/sent.
void * _eth_mac_src(const in_Header *ip) ATTR_NORETURN()
Return pointer to MAC source address of an IP packet.
BOOL _eth_join_mcast_group(const struct MultiCast *mc)
Joins a multicast group (at the physical layer).
mac_address _eth_brdcast
Link-layer broadcast address.
BYTE _eth_mac_len
Size of a MAC address.
BOOL _eth_leave_mcast_group(const struct MultiCast *mc)
Leaves a multicast group (at the physical layer)
BOOL _eth_winpcap
for Win32 using an WinPcap adapter (default)
void * _eth_mac_dst(const in_Header *ip) ATTR_NORETURN()
Return pointer to MAC destination address of an IP packet.
WORD _eth_mac_typ(const in_Header *ip) ATTR_NORETURN()
Return value of protocol-type given an IP packet.
void * _eth_mac_hdr(const in_Header *ip) ATTR_NORETURN()
Return pointer to MAC header start address of an IP packet.
mac_address _eth_real_addr
Our real MAC address.
mac_address _eth_loop_addr
Link-layer loopback address.
BOOL _eth_airpcap
for Win32 using the AirPcap adapter
BOOL _ip_recursion
avoid recursion in arp_resolve()