2 #define GTP_MATCHES_H 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_GTP_MSGTYPE = 25,
17 OFPXMT_OFX_GTP_TEID = 26,
21 enum oxm_tlv_match_fields {
22 OXM_TLV_EXPR_GTP_MSGTYPE = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GTP_MSGTYPE << 9) | 1,
23 OXM_TLV_EXPR_GTP_MSGTYPE_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GTP_MSGTYPE << 9) | 2 | HAS_MASK_FLAG,
24 OXM_TLV_EXPR_GTP_TEID = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GTP_TEID << 9) | 4,
25 OXM_TLV_EXPR_GTP_TEID_MASK = (OFPXMC_EXPERIMENTER << 16) | (OFPXMT_OFX_GTP_TEID << 9) | 8 | HAS_MASK_FLAG,
36 coxmatch(OXM_TLV_EXPR_GTP_TEID, teid) {};
38 uint32_t teid, uint32_t mask) :
39 coxmatch(OXM_TLV_EXPR_GTP_TEID_MASK, teid, mask) {};
47 os << dynamic_cast<coxmatch const&>(oxm);
48 os <<
indent(2) <<
"<gtp-teid: "
49 << (int)oxm.get_u32value() <<
"/" << (int)oxm.get_u32mask()
63 coxmatch(OXM_TLV_EXPR_GTP_MSGTYPE, msg_type) {};
65 uint8_t msg_type, uint8_t mask) :
66 coxmatch(OXM_TLV_EXPR_GTP_MSGTYPE_MASK, msg_type, mask) {};
74 os << dynamic_cast<coxmatch const&>(oxm);
75 os <<
indent(2) <<
"<gtp-msg-type: "
76 << (int)oxm.get_u8value()
Definition: gtp_matches.h:59
Definition: coxmatch.h:49
Definition: gtp_matches.h:32