WLANBeaconPacket.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
6 //
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
11 //
12 
13 
17 #ifndef HH_SENF_Packets_80211Bundle_WLANBeaconPacket_
18 #define HH_SENF_Packets_80211Bundle_WLANBeaconPacket_ 1
19 
20 // Custom includes
21 #include "InformationElements.hh"
22 
23 //-/////////////////////////////////////////////////////////////////////////////////////////////////
24 namespace senf {
25 
27  {
28  # include SENF_PARSER()
29 
32  SENF_PARSER_SKIP ( 2, 2 ); // capability flags
33 
36 
38 
39  SENF_PARSER_TLV_LIST( ieList, packetSize(), WLANGenericInfoElementParser );
40 
42  };
43 
44 
55  : public PacketTypeBase,
56  public PacketTypeMixin<WLANBeaconPacketType>
57  {
61 
62  using mixin::init;
63  using mixin::initSize;
65 
66  static void dump(packet p, std::ostream & os);
67  };
68 
74 
75 
76 
78  {
79  # include SENF_PARSER()
80  SENF_PARSER_TLV_LIST( ieList, packetSize(), WLANGenericInfoElementParser );
82  };
83 
94  : public PacketTypeBase,
95  public PacketTypeMixin<InformationElementsPacketType>
96  {
100 
101  using mixin::init;
102  using mixin::initSize;
104 
105  static void dump(packet p, std::ostream & os);
106  };
107 
112  SENF_PACKET_PREVENT_TEMPLATE_INSTANTIATION( InformationElementsPacket );
113 
114 
115 }
116 
117 //-/////////////////////////////////////////////////////////////////////////////////////////////////
118 //#include "WLANBeaconPacket.cci"
119 //#include "WLANBeaconPacket.ct"
120 //#include "WLANBeaconPacket.cti"
121 #endif
122 
123 
124 // Local Variables:
125 // mode: c++
126 // fill-column: 100
127 // c-file-style: "senf"
128 // indent-tabs-mode: nil
129 // ispell-local-dictionary: "american"
130 // compile-command: "scons -u test"
131 // comment-column: 40
132 // End:
WLAN Beacon frame packet.
ConcretePacket< InformationElementsPacketType > packet
WLANSSIDInfoElementParser ssidIE() const
WLAN Information Elements public header.
Mixin to provide standard implementations for nextPacketRange and nextPacketType. ...
Definition: PacketType.hh:300
WLANSSIDInfoElementParser::value_t ssid() const
Parse 64bit unsigned byte aligned integer LSB.
Definition: IntParser.hh:414
ConcretePacket< WLANBeaconPacketType > WLANBeaconPacket
WLAN Beacon frame packet typedef.
UInt16LSBParser beaconInterval() const
Base class for generic TLV parsers.
Definition: GenericTLV.hh:124
PacketTypeMixin< WLANBeaconPacketType > mixin
#define SENF_PARSER_FIELD(name, type)
Define normal parser field.
WLANSupportedRatesInfoElementParser supportedRatesIE() const
#define SENF_PARSER_FINALIZE(name)
Generate parser control members.
void dump(std::ostream &os, DirectoryNode &dir=root())
Protocol specific packet handle.
Definition: Packet.hh:87
Helper base-class implementing the PacketType interface.
Definition: PacketType.hh:100
static optional_range nextPacketRange(packet p)
Get next packet placement.
#define SENF_PARSER_SKIP(skip)
Skip bytes.
SENF_PACKET_PREVENT_TEMPLATE_INSTANTIATION(RadiotapPacket)
UInt64LSBParser timestamp() const
WLANBeaconPacketParser parser
Parse 16bit unsigned byte aligned integer LSB.
Definition: IntParser.hh:201
ConcretePacket< WLANBeaconPacketType > packet
PacketTypeMixin< InformationElementsPacketType > mixin
ConcretePacket< InformationElementsPacketType > InformationElementsPacket
WLAN Information Element packet typedef.
SENF_PARSER_TLV_LIST(ieList, packetSize(), WLANGenericInfoElementParser)
Parser Base class.
WLAN Information Element packet.
StringParser< UInt8Parser > value() const