X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2F80211Bundle%2FInformationElements.hh;h=31e506fed2b6b727013bf7685a01161b00b77851;hb=482523171f06cf239fd7e8c991f81711c02cf0ba;hp=21911d556810f622bee2bbe702ea4918841b1807;hpb=2571369f6d1701b241a56a78c6a3d6d7569799c7;p=senf.git diff --git a/senf/Packets/80211Bundle/InformationElements.hh b/senf/Packets/80211Bundle/InformationElements.hh index 21911d5..31e506f 100644 --- a/senf/Packets/80211Bundle/InformationElements.hh +++ b/senf/Packets/80211Bundle/InformationElements.hh @@ -41,6 +41,8 @@ namespace senf { SENF_PARSER_FIELD ( type, UInt8Parser ); SENF_PARSER_FIELD ( length, UInt8Parser ); SENF_PARSER_FINALIZE ( WLANInfoElementParser ); + + typedef GenericTLVParserRegistry Registry; }; typedef GenericTLVParserBase WLANGenericInfoElementParser; @@ -56,9 +58,46 @@ namespace senf { SENF_PARSER_FINALIZE ( WLANSSIDInfoElementParser ); SENF_PARSER_INIT() { - type() = TYPEID; + type() = typeId; } - static const type_t::value_type TYPEID = 0x00u; + static const type_t::value_type typeId = 0x00u; + + void dump(std::ostream & os) const; + }; + + 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; + + void dump(std::ostream & os) const; + }; + + 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; + + void dump(std::ostream & os) const; }; }