4 #include "../../coxmatch.h"
8 namespace experimental {
11 static uint16_t
const OFPXMC_EXPERIMENTER = 0xffff;
14 enum oxm_ofx_match_fields {
16 OFPXMT_OFX_WLAN_FC = 30,
17 OFPXMT_OFX_WLAN_TYPE = 31,
18 OFPXMT_OFX_WLAN_SUBTYPE = 32,
19 OFPXMT_OFX_WLAN_DIRECTION = 33,
20 OFPXMT_OFX_WLAN_ADDRESS_1 = 34,
21 OFPXMT_OFX_WLAN_ADDRESS_2 = 35,
22 OFPXMT_OFX_WLAN_ADDRESS_3 = 36,
26 enum oxm_tlv_match_fields {
27 OXM_TLV_EXPR_WLAN_FC = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_FC << 9) | 2,
28 OXM_TLV_EXPR_WLAN_FC_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_FC << 9) | 4 | HAS_MASK_FLAG,
29 OXM_TLV_EXPR_WLAN_TYPE = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_TYPE << 9) | 1,
30 OXM_TLV_EXPR_WLAN_TYPE_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_TYPE << 9) | 2 | HAS_MASK_FLAG,
31 OXM_TLV_EXPR_WLAN_SUBTYPE = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_SUBTYPE << 9) | 1,
32 OXM_TLV_EXPR_WLAN_SUBTYPE_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_SUBTYPE << 9) | 2 | HAS_MASK_FLAG,
33 OXM_TLV_EXPR_WLAN_DIRECTION = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_DIRECTION << 9) | 1,
34 OXM_TLV_EXPR_WLAN_DIRECTION_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_DIRECTION << 9) | 2 | HAS_MASK_FLAG,
35 OXM_TLV_EXPR_WLAN_ADDRESS_1 = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_ADDRESS_1 << 9) | 6,
36 OXM_TLV_EXPR_WLAN_ADDRESS_1_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_ADDRESS_1 << 9) | 12 | HAS_MASK_FLAG,
37 OXM_TLV_EXPR_WLAN_ADDRESS_2 = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_ADDRESS_2 << 9) | 6,
38 OXM_TLV_EXPR_WLAN_ADDRESS_2_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_ADDRESS_2 << 9) | 12 | HAS_MASK_FLAG,
39 OXM_TLV_EXPR_WLAN_ADDRESS_3 = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_ADDRESS_3 << 9) | 6,
40 OXM_TLV_EXPR_WLAN_ADDRESS_3_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_WLAN_ADDRESS_3 << 9) | 12 | HAS_MASK_FLAG,
51 coxmatch(OXM_TLV_EXPR_WLAN_FC, fc) {};
53 uint16_t fc, uint16_t mask) :
54 coxmatch(OXM_TLV_EXPR_WLAN_FC_MASK, fc, mask) {};
62 os << dynamic_cast<coxmatch const&>(oxm);
63 os <<
indent(2) <<
"<wlan-fc: 0x" << std::hex
64 << (int)oxm.get_u16value() <<
"/0x" << (int)oxm.get_u16mask()
65 << std::dec <<
" >" << std::endl;
79 coxmatch(OXM_TLV_EXPR_WLAN_TYPE, type) {};
81 uint8_t type, uint8_t mask) :
82 coxmatch(OXM_TLV_EXPR_WLAN_TYPE_MASK, type, mask) {};
90 os << dynamic_cast<coxmatch const&>(oxm);
91 os <<
indent(2) <<
"<wlan-type: 0x" << std::hex
92 << (int)oxm.get_u8value() <<
"/0x" << (int)oxm.get_u8mask()
93 << std::dec <<
" >" << std::endl;
107 coxmatch(OXM_TLV_EXPR_WLAN_SUBTYPE, subtype) {};
109 uint8_t subtype, uint8_t mask) :
110 coxmatch(OXM_TLV_EXPR_WLAN_SUBTYPE_MASK, subtype, mask) {};
118 os << dynamic_cast<coxmatch const&>(oxm);
119 os <<
indent(2) <<
"<wlan-subtype: 0x" << std::hex
120 << (int)oxm.get_u8value() <<
"/0x" << (int)oxm.get_u8mask()
121 << std::dec <<
" >" << std::endl;
135 coxmatch(OXM_TLV_EXPR_WLAN_DIRECTION, direction) {};
137 uint8_t direction, uint8_t mask) :
138 coxmatch(OXM_TLV_EXPR_WLAN_DIRECTION_MASK, direction, mask) {};
146 os << dynamic_cast<coxmatch const&>(oxm);
147 os <<
indent(2) <<
"<wlan-direction: 0x" << std::hex
148 << (int)oxm.get_u8value() <<
"/0x" << (int)oxm.get_u8mask()
149 << std::dec <<
" >" << std::endl;
163 coxmatch(OXM_TLV_EXPR_WLAN_ADDRESS_1, maddr) {};
166 coxmatch(OXM_TLV_EXPR_WLAN_ADDRESS_1_MASK, maddr, mask) {};
174 os << dynamic_cast<coxmatch const&>(oxm);
175 os <<
indent(2) <<
"<wlan-address-1 value: >" << std::endl;
176 {
indent i(4); os << oxm.get_u48value(); }
177 os <<
indent(2) <<
"<wlan-address-1 mask: >" << std::endl;
178 {
indent i(4); os << oxm.get_u48mask(); }
192 coxmatch(OXM_TLV_EXPR_WLAN_ADDRESS_2, maddr) {};
195 coxmatch(OXM_TLV_EXPR_WLAN_ADDRESS_2_MASK, maddr, mask) {};
203 os << dynamic_cast<coxmatch const&>(oxm);
204 os <<
indent(2) <<
"<wlan-address-2 value: >" << std::endl;
205 {
indent i(4); os << oxm.get_u48value(); }
206 os <<
indent(2) <<
"<wlan-address-2 mask: >" << std::endl;
207 {
indent i(4); os << oxm.get_u48mask(); }
221 coxmatch(OXM_TLV_EXPR_WLAN_ADDRESS_3, maddr) {};
224 coxmatch(OXM_TLV_EXPR_WLAN_ADDRESS_3_MASK, maddr, mask) {};
232 os << dynamic_cast<coxmatch const&>(oxm);
233 os <<
indent(2) <<
"<wlan-address-3 value: >" << std::endl;
234 {
indent i(4); os << oxm.get_u48value(); }
235 os <<
indent(2) <<
"<wlan-address-3 mask: >" << std::endl;
236 {
indent i(4); os << oxm.get_u48mask(); }
Definition: caddress.h:152
Definition: wlan_matches.h:159
Definition: wlan_matches.h:75
Definition: wlan_matches.h:131
Definition: wlan_matches.h:188
Definition: coxmatch.h:49
Definition: wlan_matches.h:217
Definition: wlan_matches.h:47
Definition: wlan_matches.h:103