17 #ifndef HH_SENF_Packets_80211Bundle_WLANPacket_ 18 #define HH_SENF_Packets_80211Bundle_WLANPacket_ 1 37 # include SENF_PARSER() 71 # include SENF_PARSER() 89 return (uint16_t)(seqNumber_2()) << 4 | seqNumber_1();
92 void sequenceNumber(boost::uint16_t sn);
110 public PacketTypeMixin<WLANPacket_MgtFrameType, WLANManagementSubtypes>
117 using mixin::initSize;
118 using mixin::nextPacketType;
119 using mixin::nextPacketRange;
122 {
return p->subtype(); }
125 static void dump(packet p, std::ostream & os);
142 # include SENF_PARSER() 180 using mixin::initSize;
183 static void dump(packet p, std::ostream & os);
195 # include SENF_PARSER() 212 # include SENF_PARSER() 225 seqNumber_1_t
seqNumber_1()
const {
return parse<seqNumber_1_t>( 22); }
233 return (uint16_t)(seqNumber_2()) << 4 | seqNumber_1();
236 void sequenceNumber(boost::uint16_t sn);
249 ( ids( qosField, has_qosField, set_qosData, key(8,
UInt16LSBParser )) )
291 using mixin::initSize;
292 using mixin::nextPacketRange;
295 return p->subtype() == 0 || p->subtype() == 8
300 static void dump(packet p, std::ostream & os);
#define SENF_PARSER_INHERIT(base)
Define parser inheritance.
WLANPacket_DataFrameParser parser
EthernetPacket public header.
ConcretePacket< WLANPacket_CtrlFrameType > packet
MACAddressParser receiverAddress() const
Parse unsigned bitfield with up to 32bit's.
senf::UIntFieldParser<?,?+2 >::value_type type() const
#define SENF_PARSER_BITFIELD(name, bits, type)
Define bit-field.
ConcretePacket< WLANPacket_MgtFrameType > packet
UIntFieldParser< 0, 0+4 > seqNumber_1_t
Mixin to provide standard implementations for nextPacketRange and nextPacketType. ...
boost::uint16_t sequenceNumber() const
Parse 8bit unsigned byte aligned integer.
Control frame parser Re-ordering of bits due to LSB byte order
senf::FlagParser<?> retry() const
senf::UIntFieldParser<?,?+2 > version() const
MACAddressParser addr2() const
senf::FlagParser<?> toDS() const
senf::FlagParser<?> pwrMgt() const
#define SENF_PARSER_FIELD(name, type)
Define normal parser field.
#define SENF_PARSER_VARIANT(name, chooser, types)
Define VariantParser field.
#define SENF_PARSER_PRIVATE_VARIANT(name, chooser, types)
Define private VariantParser field.
WLANPacket_DataFrameType::packet WLANPacket_DataFrame
WLAN Data frame packet typedef.
#define SENF_PARSER_PRIVATE_FIELD(name, type)
Define parser field (private)
Parse an Ethernet MAC address.
WLANPacket_MgtFrameType::packet WLANPacket_MgtFrame
WLAN Management frame packet typedef.
#define SENF_PARSER_FINALIZE(name)
Generate parser control members.
senf::UIntFieldParser<?,?+4 >::value_type subtype() const
senf::FlagParser<?> moreData() const
MACAddressParser addr3() const
UIntFieldParser< 4, 4+4 > fragmentNumber_t
Management frame parser Re-ordering of bits due to LSB byte order
void dump(std::ostream &os, DirectoryNode &dir=root())
Protocol specific packet handle.
Helper base-class implementing the PacketType interface.
#define SENF_PARSER_BITFIELD_RO(name, bits, type)
Define bit-field (read-only)
WLAN Management frame packet.
#define SENF_PARSER_INIT()
Define parser initialization routine.
static optional_range nextPacketRange(packet p)
Get next packet placement.
Packet next() const
Get next packet in chain.
Default parser parsing nothing.
UInt8Parser seqNumber_2() const
802.11 Frame parser (see IEEE 802.11-2007 standard - Chapter 7 Frame formats) Re-ordering of bits due...
PacketTypeMixin< WLANPacket_CtrlFrameType > mixin
WLANPacket_CtrlFrameParser parser
senf::UIntFieldParser<?,?+2 > dsBits() const
seqNumber_1_t seqNumber_1() const
WLANPacket_CtrlFrameType::packet WLANPacket_CtrlFrame
WLAN Control frame packet typedef.
ConcretePacket< WLANPacket_DataFrameType > packet
Parse 16bit unsigned byte aligned integer LSB.
fragmentNumber_t fragmentNumber() const
static key_t nextPacketKey(packet p)
boost::uint16_t sequenceNumber() const
senf::FlagParser<?> fromDS() const
senf::FlagParser<?> protectedFrame() const
PacketTypeMixin< WLANPacket_DataFrameType > mixin
Data frame parser Re-ordering of bits due to LSB byte order
UInt16LSBParser duration() const
#define SENF_PARSER_SKIP_BITS(bits)
Skip bits within bitfield group.
static factory_t nextPacketType(packet p)
PacketInterpreterBase::factory_t factory_t
#define SENF_PARSER_GOTO_OFFSET(offset)
Change current offset to explicit value.
static factory_t factory()
Return factory for packets of specific type.
MACAddressParser transmitterAddress() const
#define SENF_PARSER_PRIVATE_BITFIELD(name, bits, type)
Define bit-field (private)
WLANPacket_MgtFrameParser parser
WLAN Control frame packet.
senf::FlagParser<?> moreFrag() const
PacketTypeMixin< WLANPacket_MgtFrameType, WLANManagementSubtypes > mixin
senf::FlagParser<?> order() const
MACAddressParser addr1() const
80211Bundle packet registries public header
static void finalize(packet p)
WLANManagementSubtypes ::key_t key_t