X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2F80211Bundle%2FWLANPacket.hh;h=b5c2de947e3b5cf79c3b24905d37c8df40dbb0b9;hb=975639608e44e49058ccd52f05ffe6b21faeafef;hp=c632aa5bbb9c85a34affd7d53839b028b17fcf9f;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Packets/80211Bundle/WLANPacket.hh b/senf/Packets/80211Bundle/WLANPacket.hh index c632aa5..b5c2de9 100644 --- a/senf/Packets/80211Bundle/WLANPacket.hh +++ b/senf/Packets/80211Bundle/WLANPacket.hh @@ -26,9 +26,11 @@ #ifndef HH_SENF_Packets_80211Bundle_WLANPacket_ #define HH_SENF_Packets_80211Bundle_WLANPacket_ 1 -#include "../../Packets/Packets.hh" -#include "../DefaultBundle/EthernetPacket.hh" -#include "../DefaultBundle/LlcSnapPacket.hh" +#include +#include +#include + +///////////////////////////////hh.p//////////////////////////////////////// namespace senf { @@ -39,7 +41,7 @@ namespace senf Frame base class. */ - struct WLANPacketParser : public senf::PacketParserBase + struct WLANPacketParser : public PacketParserBase { # include SENF_PARSER() @@ -91,12 +93,14 @@ namespace senf boost::uint16_t sequenceNumber() const { return (uint16_t)(seqNumber_2()) << 4 | seqNumber_1(); }; + + void sequenceNumber(boost::uint16_t sn); }; /** \brief WLAN Management frame packet \par Packet type (typedef): - \refWLANPacket_MgtFrame + \ref WLANPacket_MgtFrame \par Fields: \ref WLANPacket_MgtFrameParser @@ -105,20 +109,23 @@ namespace senf \ingroup protocolbundle_80211 */ struct WLANPacket_MgtFrameType - : public senf::PacketTypeBase, - public senf::PacketTypeMixin + : public PacketTypeBase, + public PacketTypeMixin { - typedef senf::PacketTypeMixin mixin; - typedef senf::ConcretePacket packet; + typedef PacketTypeMixin mixin; + typedef ConcretePacket packet; typedef WLANPacket_MgtFrameParser parser; using mixin::init; using mixin::initSize; - using senf::PacketTypeBase::nextPacketRange; + using PacketTypeBase::nextPacketRange; static void dump(packet p, std::ostream &os); }; + /** \brief WLAN Management frame packet typedef + \ingroup protocolbundle_80211 + */ typedef WLANPacket_MgtFrameType::packet WLANPacket_MgtFrame; /////////////////////////////////////////////////////////////////////////// @@ -134,7 +141,7 @@ namespace senf SENF_PARSER_INHERIT(WLANPacketParser); - SENF_PARSER_FIELD ( receiverAddress, MACAddressParser ); + SENF_PARSER_FIELD ( receiverAddress, MACAddressParser ); //only RTS frame contains a source address field //variant is also needed to set correct subtype value @@ -160,20 +167,23 @@ namespace senf \ingroup protocolbundle_80211 */ struct WLANPacket_CtrlFrameType - : public senf::PacketTypeBase, - public senf::PacketTypeMixin + : public PacketTypeBase, + public PacketTypeMixin { - typedef senf::PacketTypeMixin mixin; - typedef senf::ConcretePacket packet; + typedef PacketTypeMixin mixin; + typedef ConcretePacket packet; typedef WLANPacket_CtrlFrameParser parser; using mixin::init; using mixin::initSize; - using senf::PacketTypeBase::nextPacketRange; + using PacketTypeBase::nextPacketRange; static void dump(packet p, std::ostream &os); }; + /** \brief WLAN Control frame packet typedef + \ingroup protocolbundle_80211 + */ typedef WLANPacket_CtrlFrameType::packet WLANPacket_CtrlFrame; /////////////////////////////////////////////////////////////////////////// @@ -205,6 +215,8 @@ namespace senf boost::uint16_t sequenceNumber() const { return (uint16_t)(seqNumber_2()) << 4 | seqNumber_1(); }; + + void sequenceNumber(boost::uint16_t sn); // TODO fourth address field in case of WDS // SENF_PARSER_PRIVATE_VARIANT (wds_, dsBits, @@ -244,11 +256,11 @@ namespace senf \ingroup protocolbundle_80211 */ struct WLANPacket_DataFrameType - : public senf::PacketTypeBase, - public senf::PacketTypeMixin + : public PacketTypeBase, + public PacketTypeMixin { - typedef senf::PacketTypeMixin mixin; - typedef senf::ConcretePacket packet; + typedef PacketTypeMixin mixin; + typedef ConcretePacket packet; typedef WLANPacket_DataFrameParser parser; using mixin::init; @@ -264,10 +276,17 @@ namespace senf static void dump(packet p, std::ostream &os); }; + /** \brief WLAN Data frame packet typedef + \ingroup protocolbundle_80211 + */ typedef WLANPacket_DataFrameType::packet WLANPacket_DataFrame; } -#endif /* HH_SENF_Packets_80211Bundle_WLANPacket_ */ +///////////////////////////////hh.e//////////////////////////////////////// +//#include "WLANPacket.cci" +//#include "WLANPacket.ct" +//#include "WLANPacket.cti" +#endif // Local Variables: