11 #include <rofl/common/openflow/coxmatch.h>
15 namespace experimental {
18 static uint16_t
const OFPXMC_EXPERIMENTER = 0xffff;
21 enum oxm_ofx_match_fields {
23 OFPXMT_OFX_GRE_VERSION = 37,
24 OFPXMT_OFX_GRE_PROT_TYPE = 38,
25 OFPXMT_OFX_GRE_KEY = 39,
29 enum oxm_tlv_match_fields {
30 OXM_TLV_EXPR_GRE_VERSION = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GRE_VERSION << 9) | 2,
31 OXM_TLV_EXPR_GRE_VERSION_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GRE_VERSION << 9) | 4 | HAS_MASK_FLAG,
32 OXM_TLV_EXPR_GRE_PROT_TYPE = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GRE_PROT_TYPE << 9) | 2,
33 OXM_TLV_EXPR_GRE_PROT_TYPE_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GRE_PROT_TYPE << 9) | 4 | HAS_MASK_FLAG,
34 OXM_TLV_EXPR_GRE_KEY = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GRE_KEY << 9) | 4,
35 OXM_TLV_EXPR_GRE_KEY_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GRE_KEY << 9) | 8 | HAS_MASK_FLAG,
46 coxmatch(OXM_TLV_EXPR_GRE_VERSION, version) {};
48 uint16_t version, uint16_t mask) :
49 coxmatch(OXM_TLV_EXPR_GRE_VERSION_MASK, version, mask) {};
57 os << dynamic_cast<coxmatch const&>(oxm);
58 os <<
indent(2) <<
"<gre-version: "
59 << (int)oxm.get_u16value() <<
"/" << (int)oxm.get_u16mask()
73 coxmatch(OXM_TLV_EXPR_GRE_PROT_TYPE, prot_type) {};
75 uint16_t prot_type, uint16_t mask) :
76 coxmatch(OXM_TLV_EXPR_GRE_PROT_TYPE_MASK, prot_type, mask) {};
84 os << dynamic_cast<coxmatch const&>(oxm);
85 os <<
indent(2) <<
"<gre-prot-type: "
86 << (int)oxm.get_u16value() <<
"/" << (int)oxm.get_u16mask()
100 coxmatch(OXM_TLV_EXPR_GRE_KEY, key) {};
102 uint32_t key, uint32_t mask) :
103 coxmatch(OXM_TLV_EXPR_GRE_KEY_MASK, key, mask) {};
111 os << dynamic_cast<coxmatch const&>(oxm);
112 os <<
indent(2) <<
"<gre-key: "
113 << (int)oxm.get_u32value() <<
"/" << (int)oxm.get_u32mask()
114 <<
" >" << std::endl;
Definition: coxmatch.h:49
Definition: gre_matches.h:96
Definition: gre_matches.h:69
Definition: gre_matches.h:42