2 #define PPPOE_MATCHES 1
4 #include <rofl/common/openflow/coxmatch.h>
8 namespace experimental {
11 static uint16_t
const OFPXMC_EXPERIMENTER = 0xffff;
14 enum oxm_ofx_match_fields {
16 OFPXMT_OFX_PPPOE_CODE = 21,
17 OFPXMT_OFX_PPPOE_TYPE = 22,
18 OFPXMT_OFX_PPPOE_SID = 23,
19 OFPXMT_OFX_PPP_PROT = 24,
23 enum oxm_tlv_match_fields {
24 OXM_TLV_EXPR_PPPOE_CODE = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_PPPOE_CODE << 9) | 1,
25 OXM_TLV_EXPR_PPPOE_TYPE = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_PPPOE_TYPE << 9) | 1,
26 OXM_TLV_EXPR_PPPOE_SID = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_PPPOE_SID << 9) | 2,
27 OXM_TLV_EXPR_PPP_PROT = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_PPP_PROT << 9) | 2,
38 coxmatch(OXM_TLV_EXPR_PPPOE_CODE, code) {};
46 os << dynamic_cast<coxmatch const&>(oxm);
47 os <<
indent(2) <<
"<pppoe-code: "
48 << (int)oxm.get_u8value()
62 coxmatch(OXM_TLV_EXPR_PPPOE_TYPE, type) {};
70 os << dynamic_cast<coxmatch const&>(oxm);
71 os <<
indent(2) <<
"<pppoe-type: "
72 << (int)oxm.get_u8value()
86 coxmatch(OXM_TLV_EXPR_PPPOE_SID, sid) {};
94 os << dynamic_cast<coxmatch const&>(oxm);
95 os <<
indent(2) <<
"<pppoe-sid: "
96 << (int)oxm.get_u16value()
110 coxmatch(OXM_TLV_EXPR_PPP_PROT, prot) {};
118 os << dynamic_cast<coxmatch const&>(oxm);
119 os <<
indent(2) <<
"<ppp-prot: "
120 << (int)oxm.get_u16value()
121 <<
" >" << std::endl;
Definition: pppoe_matches.h:34
Definition: pppoe_matches.h:106
Definition: pppoe_matches.h:58
Definition: coxmatch.h:49
Definition: pppoe_matches.h:82