diff options
author | Jarno Rajahalme <jarno.rajahalme@nsn.com> | 2012-11-27 17:44:22 +0200 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2012-11-27 09:37:50 -0800 |
commit | 2e1ae2005ed347d2dfebd23fff40c54a1a2a6716 (patch) | |
tree | e8bfc3b61bd60017b5da871dfd0a0a62f7f8690d /include/openflow/openflow-1.2.h | |
parent | 6ed3b860fe806fce26dfc760cb428a9a5432d329 (diff) | |
download | openvswitch-2e1ae2005ed347d2dfebd23fff40c54a1a2a6716.tar.gz |
Initial OpenFlow 1.3 support
Initial OpenFlow 1.3 support with new include/openflow/openflow-1.3.h.
Most of the messages that differ from 1.2 are implemented. OFPT_SET_ASYNC
is implemented via NX_SET_ASYNC_CONFIG, other new message types are yet to
be implemented. Stats replies that add duration fields are implemented at
encode/decode level only. Test cases for implemented features are included.
Remaining FIXME:s should not cause runtime aborts. Make check comes out
clean.
Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'include/openflow/openflow-1.2.h')
-rw-r--r-- | include/openflow/openflow-1.2.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/openflow/openflow-1.2.h b/include/openflow/openflow-1.2.h index 1c3f01764..554631340 100644 --- a/include/openflow/openflow-1.2.h +++ b/include/openflow/openflow-1.2.h @@ -106,6 +106,11 @@ enum oxm12_ofb_match_fields { OFPXMT12_OFB_IPV6_ND_TLL, /* Target link-layer for ND. */ OFPXMT12_OFB_MPLS_LABEL, /* MPLS label. */ OFPXMT12_OFB_MPLS_TC, /* MPLS TC. */ + /* Following added in OpenFlow 1.3 */ + OFPXMT12_OFB_MPLS_BOS, /* MPLS BoS bit. */ + OFPXMT12_OFB_PBB_ISID, /* PBB I-SID. */ + OFPXMT12_OFB_TUNNEL_ID, /* Logical Port Metadata */ + OFPXMT12_OFB_IPV6_EXTHDR, /* IPv6 Extension Header pseudo-field */ /* End Marker */ OFPXMT12_OFB_MAX, @@ -172,6 +177,13 @@ enum oxm12_ofb_match_fields { #define OXM_OF_IPV6_ND_TLL OXM_HEADER (OFPXMT12_OFB_IPV6_ND_TLL, 6) #define OXM_OF_MPLS_LABEL OXM_HEADER (OFPXMT12_OFB_MPLS_LABEL, 4) #define OXM_OF_MPLS_TC OXM_HEADER (OFPXMT12_OFB_MPLS_TC, 1) +#define OXM_OF_MPLS_BOS OXM_HEADER (OFPXMT12_OFB_MPLS_BOS, 1) +#define OXM_OF_PBB_ISID OXM_HEADER (OFPXMT12_OFB_PBB_ISID, 4) +#define OXM_OF_PBB_ISID_W OXM_HEADER_W (OFPXMT12_OFB_PBB_ISID, 4) +#define OXM_OF_TUNNEL_ID OXM_HEADER (OFPXMT12_OFB_TUNNEL_ID, 8) +#define OXM_OF_TUNNEL_ID_W OXM_HEADER_W (OFPXMT12_OFB_TUNNEL_ID, 8) +#define OXM_OF_IPV6_EXTHDR OXM_HEADER (OFPXMT12_OFB_IPV6_EXTHDR, 2) +#define OXM_OF_IPV6_EXTHDR_W OXM_HEADER_W (OFPXMT12_OFB_IPV6_EXTHDR, 2) /* The VLAN id is 12-bits, so we can use the entire 16 bits to indicate * special conditions. @@ -181,6 +193,19 @@ enum ofp12_vlan_id { OFPVID12_NONE = 0x0000, /* No VLAN id was set. */ }; +/* Bit definitions for IPv6 Extension Header pseudo-field. */ +enum ofp12_ipv6exthdr_flags { + OFPIEH12_NONEXT = 1 << 0, /* "No next header" encountered. */ + OFPIEH12_ESP = 1 << 1, /* Encrypted Sec Payload header present. */ + OFPIEH12_AUTH = 1 << 2, /* Authentication header present. */ + OFPIEH12_DEST = 1 << 3, /* 1 or 2 dest headers present. */ + OFPIEH12_FRAG = 1 << 4, /* Fragment header present. */ + OFPIEH12_ROUTER = 1 << 5, /* Router header present. */ + OFPIEH12_HOP = 1 << 6, /* Hop-by-hop header present. */ + OFPIEH12_UNREP = 1 << 7, /* Unexpected repeats encountered. */ + OFPIEH12_UNSEQ = 1 << 8 /* Unexpected sequencing encountered. */ +}; + /* Header for OXM experimenter match fields. */ struct ofp12_oxm_experimenter_header { ovs_be32 oxm_header; /* oxm_class = OFPXMC_EXPERIMENTER */ |