X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPackets%2F80211Bundle%2FInformationElements.hh;h=396b62a34f3409a500586bce1940a39ccb0cb08f;hb=57daeae6f2e924ce3f16f9677c3474f531cba9e5;hp=21911d556810f622bee2bbe702ea4918841b1807;hpb=2571369f6d1701b241a56a78c6a3d6d7569799c7;p=senf.git diff --git a/senf/Packets/80211Bundle/InformationElements.hh b/senf/Packets/80211Bundle/InformationElements.hh index 21911d5..396b62a 100644 --- a/senf/Packets/80211Bundle/InformationElements.hh +++ b/senf/Packets/80211Bundle/InformationElements.hh @@ -30,7 +30,7 @@ #include //#include "InformationElements.mpp" -///////////////////////////////hh.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { @@ -41,10 +41,12 @@ namespace senf { SENF_PARSER_FIELD ( type, UInt8Parser ); SENF_PARSER_FIELD ( length, UInt8Parser ); SENF_PARSER_FINALIZE ( WLANInfoElementParser ); + + typedef GenericTLVParserRegistry Registry; }; typedef GenericTLVParserBase WLANGenericInfoElementParser; - + struct WLANSSIDInfoElementParser : public WLANInfoElementParser { @@ -54,15 +56,52 @@ namespace senf { 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; + + 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; - } - static const type_t::value_type TYPEID = 0x00u; + type() = typeId; + length() = 1; + } + static const type_t::value_type typeId = 0x20u; + + void dump(std::ostream & os) const; }; } -///////////////////////////////hh.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// //#include "InformationElements.cci" //#include "InformationElements.ct" //#include "InformationElements.cti"