17 #ifndef HH_SENF_Packets_DefaultBundle_EthernetPacket_ 18 #define HH_SENF_Packets_DefaultBundle_EthernetPacket_ 1 45 void hash(boost::uint64_t *, boost::uint16_t
const & otherKey = 0)
const;
47 using Base::operator=;
59 # include SENF_FIXED_PARSER() 93 using mixin::nextPacketRange;
94 using mixin::initSize;
97 static factory_t nextPacketType(packet p);
99 static void dump(packet p, std::ostream & os);
100 static void finalize(packet p);
102 static const unsigned minPayloadSize = 60u;
103 static const unsigned minPayloadSizeCRC = 64u;
121 # include SENF_FIXED_PARSER() 158 using mixin::nextPacketRange;
159 using mixin::nextPacketType;
160 using mixin::initSize;
166 {
return p->type_length(); }
169 static void dump(packet p, std::ostream & os);
170 static void finalize(packet p);
207 using mixin::nextPacketRange;
208 using mixin::nextPacketType;
209 using mixin::initSize;
215 {
return p->type_length(); }
218 static void dump(packet p, std::ostream & os);
219 static void finalize(packet p);
235 # include SENF_FIXED_PARSER() 251 using mixin::nextPacketRange;
252 using mixin::nextPacketType;
253 using mixin::initSize;
258 static void dump(packet p, std::ostream & os);
259 static void finalize(packet p);
263 static const std::uint32_t OUI_Fraunhofer_FOKUS = 0x001113;
264 static const std::uint32_t OUI_Fraunhofer_FIT = 0x3c11b2;
static key_t nextPacketKey(packet p)
Parse an Ethernet packet.
#define SENF_PARSER_BITFIELD(name, bits, type)
Define bit-field.
EthVLanPacketParser parser
PacketTypeMixin< EthVLanCPacketType, EtherTypes > mixin
Mixin to provide standard implementations for nextPacketRange and nextPacketType. ...
ConcretePacket< EthVLanSPacketType > EthVLanSPacket
Ethernet VLAN S-Tag typedef.
bool multicast() const
true, if address is a group/multicast address
DefaultBundle packet registries public header.
MACAddressParser(data_iterator i, state_type s)
#define SENF_PARSER_FIELD(name, type)
Define normal parser field.
Parse an Ethernet MAC address.
#define SENF_PARSER_FINALIZE(name)
Generate parser control members.
bool null() const
true, if address is the zero address
PacketTypeMixin< EthVLanSPacketType, EtherTypes > mixin
void dump(std::ostream &os, DirectoryNode &dir=root())
Protocol specific packet handle.
Helper base-class implementing the PacketType interface.
EthernetPacketParser parser
EthVLanPacketParser parser
Packet data STL-sequence view.
data_iterator i() const
Return beginning of data to parse.
bool broadcast() const
true, if address is the broadcast address
Parse an ethernet VLAN tag.
SENF_PACKET_PREVENT_TEMPLATE_INSTANTIATION(RadiotapPacket)
static key_t nextPacketKey(packet p)
ConcretePacket< EthVLanCPacketType > EthVLanCPacket
Ethernet VLAN C-Tag typedef.
ConcretePacket< EthOUIExtensionPacketType > EthOUIExtensionPacket
ConcretePacket< EthVLanCPacketType > packet
bool local() const
true, if address is locally administered
ConcretePacket< EthernetPacketType > packet
static key_t nextPacketKey(packet p)
Parse 24bit unsigned byte aligned integer.
PacketTypeMixin< EthOUIExtensionPacketType, EtherOUIExtTypes > mixin
ConcretePacket< EthVLanSPacketType > packet
EthOUIExtensionPacketParser parser
PacketInterpreterBase::factory_t factory_t
void hash(boost::uint64_t *, boost::uint16_t const &otherKey=0) const
Return MAC address as uint64 value as hask key.
Parse 16bit unsigned byte aligned integer.
ConcretePacket< EthernetPacketType > EthernetPacket
Ethernet packet typedef.
ConcretePacket< EthOUIExtensionPacketType > packet
static key_t type(boost::uint32_t oui, boost::uint16_t extType)
detail::packet::iterator data_iterator
Raw data iterator type.
PacketTypeMixin< EthernetPacketType, EtherTypes > mixin