class PacketFu::EthHeader

EthHeader is a complete Ethernet struct, used in EthPacket. It’s the base header for all other protocols, such as IPHeader, TCPHeader, etc.

For more on the construction on MAC addresses, see en.wikipedia.org/wiki/MAC_address

TODO: Need to come up with a good way of dealing with vlan tagging. Having a usually empty struct member seems weird, but there may not be another way to do it if I want to preserve the Eth-ness of vlan-tagged 802.1Q packets. Also, may as well deal with 0x88a8 as well (en.wikipedia.org/wiki/802.1ad)

Header Definition

EthMac  :eth_dst                     # See EthMac
EthMac  :eth_src                     # See EthMac
Int16   :eth_proto, Default: 0x8000  # IP 0x0800, Arp 0x0806
String  :body