X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2F80211Bundle%2FWLANPacket.cc;h=fd3355aee47eb31770b93cf9328b89c78cfa4bdc;hb=57daeae6f2e924ce3f16f9677c3474f531cba9e5;hp=013f645895c97e889a4493b93d8779308e66cc5c;hpb=5a7344d1bc318ab9105b71d65a0cc86337dcd4d5;p=senf.git diff --git a/senf/Packets/80211Bundle/WLANPacket.cc b/senf/Packets/80211Bundle/WLANPacket.cc index 013f645..fd3355a 100644 --- a/senf/Packets/80211Bundle/WLANPacket.cc +++ b/senf/Packets/80211Bundle/WLANPacket.cc @@ -26,11 +26,10 @@ //#include "WLANPacket.ih" // Custom includes -#include #include #define prefix_ -///////////////////////////////cc.p/////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace { void dumpBase(senf::WLANPacketParser const & p, std::ostream & os) @@ -49,17 +48,23 @@ namespace { if ( p.order() ) os << " order"; if ( !(p.toDS() || p.fromDS() || p.moreFrag() || p.retry() || p.pwrMgt() || - p.moreData() || p.protectedFrame() || p.order()) ) + p.moreData() || p.protectedFrame() || p.order()) ) os << " none"; os << "\n" << " duration : " << unsigned(p.duration()) << "\n"; } } +prefix_ void senf::WLANPacket_MgtFrameParser::sequenceNumber(boost::uint16_t sn) +{ + seqNumber_2() = 0u | (sn >> 4 ) ; + seqNumber_1() = 0u | sn; +} + prefix_ void senf::WLANPacket_MgtFrameType::dump(packet p, std::ostream &os) { boost::io::ios_all_saver ias(os); - os << "802.11 MAC Mangement Frame:\n"; + os << "802.11 MAC Management Frame:\n"; dumpBase(p.parser(), os); os << senf::fieldName("destination") << p->destinationAddress() << "\n" << senf::fieldName("source") << p->sourceAddress() << "\n" @@ -78,14 +83,21 @@ prefix_ void senf::WLANPacket_CtrlFrameType::dump(packet p, std::ostream &os) os << senf::fieldName("source") << p->sourceAddress() << "\n"; } +prefix_ void senf::WLANPacket_DataFrameParser::sequenceNumber(boost::uint16_t sn) +{ + seqNumber_2() = 0u | (sn >> 4 ) ; + seqNumber_1() = 0u | sn; +} + + prefix_ senf::MACAddressParser senf::WLANPacket_DataFrameParser::destinationAddress() const { switch (dsBits()) { case 0 : - case 2 : + case 2 : return addr1(); - default: + default: return addr3(); } } @@ -99,7 +111,7 @@ prefix_ senf::MACAddressParser senf::WLANPacket_DataFrameParser::sourceAddress() return addr2(); // TODO wds frames // case 3 : return addr4(); - default: + default: return addr3(); } } @@ -138,7 +150,7 @@ prefix_ void senf::WLANPacket_DataFrameType::dump(packet p, std::ostream &os) os << senf::fieldName("QOS data") << p->qosField() << "\n"; } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_