X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2F80211Bundle%2FWLANPacket.cc;h=141dcd1c60112d30782fdee3b0a93a8a5f7a9d27;hb=9bc655e14d2d8c204ed835896cb51e42d49bd68f;hp=ba4fafee4cf418b14e90df95978209c21ef8c906;hpb=82e794070d4f3ae8aacb1827b21a93b9d48ce57f;p=senf.git diff --git a/senf/Packets/80211Bundle/WLANPacket.cc b/senf/Packets/80211Bundle/WLANPacket.cc index ba4fafe..141dcd1 100644 --- a/senf/Packets/80211Bundle/WLANPacket.cc +++ b/senf/Packets/80211Bundle/WLANPacket.cc @@ -22,15 +22,16 @@ // Definition of non-inline non-template functions -// Custom includes #include "WLANPacket.hh" -#include +//#include "WLANPacket.ih" + +// Custom includes #include #define prefix_ +///////////////////////////////cc.p/////////////////////////////////////// namespace { - void dumpBase(senf::WLANPacketParser const & p, std::ostream & os) { os << " version : " << unsigned(p.version()) <<"\n" @@ -47,13 +48,19 @@ 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); @@ -76,37 +83,49 @@ 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 : return addr1(); - default: return addr3(); + case 2 : + return addr1(); + default: + return addr3(); } } prefix_ senf::MACAddressParser senf::WLANPacket_DataFrameParser::sourceAddress() const { - switch (dsBits()) - { + switch (dsBits()) { case 0 : - case 1 : return addr2(); + case 1 : + return addr2(); // TODO wds frames // case 3 : return addr4(); - default: return addr3(); + default: + return addr3(); } } prefix_ senf::MACAddressParser senf::WLANPacket_DataFrameParser::bssid() const { - switch (dsBits()) - { - case 0 : return addr3(); - case 1 : return addr1(); - default: return addr2(); + switch (dsBits()) { + case 0 : + return addr3(); + case 1 : + return addr1(); + default: + return addr2(); } } @@ -131,6 +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_