Blame iscsiuio/src/uip/uip_eth.h

Packit eace71
#ifndef __UIP_ETH_H__
Packit eace71
#define __UIP_ETH_H__
Packit eace71
Packit eace71
#include "uipopt.h"
Packit eace71
Packit eace71
/*******************************************************************************
Packit eace71
 * Ether types
Packit eace71
 ******************************************************************************/
Packit eace71
#define UIP_ETHTYPE_ARP		0x0806
Packit eace71
#define UIP_ETHTYPE_IPv4	0x0800
Packit eace71
#define UIP_ETHTYPE_8021Q	0x8100
Packit eace71
#define UIP_ETHTYPE_IPv6	0x86dd
Packit eace71
Packit eace71
/**
Packit eace71
 * Representation of a 48-bit Ethernet address.
Packit eace71
 */
Packit eace71
struct uip_eth_addr {
Packit eace71
	u8_t addr[6];
Packit eace71
};
Packit eace71
Packit eace71
/**
Packit eace71
 * The Ethernet header.
Packit eace71
 */
Packit eace71
struct __attribute__ ((__packed__)) uip_eth_hdr {
Packit eace71
	struct uip_eth_addr dest;
Packit eace71
	struct uip_eth_addr src;
Packit eace71
	u16_t type;
Packit eace71
};
Packit eace71
Packit eace71
/**
Packit eace71
 * The 802.1Q Ethernet header (VLAN).
Packit eace71
 */
Packit eace71
struct __attribute__ ((__packed__)) uip_vlan_eth_hdr {
Packit eace71
	struct uip_eth_addr dest;
Packit eace71
	struct uip_eth_addr src;
Packit eace71
	u16_t tpid;
Packit eace71
	u16_t vid;
Packit eace71
	u16_t type;
Packit eace71
};
Packit eace71
Packit eace71
int is_vlan_packet(struct uip_vlan_eth_hdr *hdr);
Packit eace71
Packit eace71
#endif /* __UIP_ETH_H__ */