X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2F80211Bundle%2FInformationElements.hh;h=a40691c2b506400f4c2b1628d533222d8dbfec11;hb=3fe57f6d48f9061fa70628ac832537de30d24b92;hp=0b550f4f18ba35f8c1c56af4d11b08adbc2cda65;hpb=a3f9296f648c4991a1576d4200abfdc72788bc16;p=senf.git diff --git a/senf/Packets/80211Bundle/InformationElements.hh b/senf/Packets/80211Bundle/InformationElements.hh index 0b550f4..a40691c 100644 --- a/senf/Packets/80211Bundle/InformationElements.hh +++ b/senf/Packets/80211Bundle/InformationElements.hh @@ -45,6 +45,52 @@ namespace senf { typedef GenericTLVParserBase WLANGenericInfoElementParser; + struct WLANSSIDInfoElementParser + : public WLANInfoElementParser + { + # include SENF_PARSER() + SENF_PARSER_INHERIT ( WLANInfoElementParser ); + // the StringParser includes the length field so we have to go back + SENF_PARSER_GOTO ( length ); + SENF_PARSER_FIELD ( value, StringParser ); + SENF_PARSER_FINALIZE ( WLANSSIDInfoElementParser ); + + SENF_PARSER_INIT() { + type() = TYPEID; + } + static const type_t::value_type TYPEID = 0x00u; + }; + + struct WLANSupportedRatesInfoElementParser + : public WLANInfoElementParser + { + # include SENF_PARSER() + SENF_PARSER_INHERIT ( WLANInfoElementParser ); + // we just skip the value here. If somebody needs the information he has to implement + // this strange information element hisself. + SENF_PARSER_SKIP ( length(), 0 ); + SENF_PARSER_FINALIZE ( WLANSupportedRatesInfoElementParser ); + + SENF_PARSER_INIT() { + type() = TYPEID; + } + static const type_t::value_type TYPEID = 0x01u; + }; + + struct WLANPowerConstraintInfoElementParser + : public WLANInfoElementParser + { + # include SENF_PARSER() + SENF_PARSER_INHERIT ( WLANInfoElementParser ); + SENF_PARSER_FIELD ( value, UInt8Parser ); + SENF_PARSER_FINALIZE ( WLANPowerConstraintInfoElementParser ); + + SENF_PARSER_INIT() { + type() = TYPEID; + length() = 1; + } + static const type_t::value_type TYPEID = 0x20u; + }; } ///////////////////////////////hh.e////////////////////////////////////////