On Wed, Nov 28, 2012 at 11:06:51PM -0800, Ben Pfaff wrote: > To my mind, it makes sense, when a user requests OXM as the flow format, > to allow any protocol based on the OXM flow format to be used. Until this > commit, however, "OXM" was specifically OpenFlow 1.2, and "OpenFlow13" was > required to request OXM on OpenFlow 1.3. > > This doesn't affect the behavior of any released version of Open vSwitch. > > Signed-off-by: Ben Pfaff <[email protected]>
Acked-by: Simon Horman <[email protected]> > --- > lib/ofp-util.c | 5 +++-- > lib/ofp-util.h | 1 + > tests/learn.at | 2 +- > tests/ovs-ofctl.at | 12 ++++++------ > utilities/ovs-ofctl.8.in | 7 +++++++ > 5 files changed, 18 insertions(+), 9 deletions(-) > > diff --git a/lib/ofp-util.c b/lib/ofp-util.c > index edac120..b53001e 100644 > --- a/lib/ofp-util.c > +++ b/lib/ofp-util.c > @@ -584,6 +584,7 @@ static const struct proto_abbrev proto_abbrevs[] = { > { OFPUTIL_P_ANY, "any" }, > { OFPUTIL_P_OF10_STD_ANY, "OpenFlow10" }, > { OFPUTIL_P_OF10_NXM_ANY, "NXM" }, > + { OFPUTIL_P_ANY_OXM, "OXM" }, > }; > #define N_PROTO_ABBREVS ARRAY_SIZE(proto_abbrevs) > > @@ -738,10 +739,10 @@ ofputil_protocol_to_string(enum ofputil_protocol > protocol) > return "OpenFlow10+table_id"; > > case OFPUTIL_P_OF12_OXM: > - return "OXM"; > + return "OXM-OpenFlow12"; > > case OFPUTIL_P_OF13_OXM: > - return "OpenFlow13"; > + return "OXM-OpenFlow13"; > } > > /* Check abbreviations. */ > diff --git a/lib/ofp-util.h b/lib/ofp-util.h > index 60c9f31..9e9f32a 100644 > --- a/lib/ofp-util.h > +++ b/lib/ofp-util.h > @@ -86,6 +86,7 @@ enum ofputil_protocol { > * variant. */ > OFPUTIL_P_OF12_OXM = 1 << 4, > OFPUTIL_P_OF13_OXM = 1 << 5, > +#define OFPUTIL_P_ANY_OXM (OFPUTIL_P_OF12_OXM | OFPUTIL_P_OF13_OXM) > > /* All protocols. */ > #define OFPUTIL_P_ANY ((1 << 6) - 1) > diff --git a/tests/learn.at b/tests/learn.at > index d60b0d3..47c1d32 100644 > --- a/tests/learn.at > +++ b/tests/learn.at > @@ -24,7 +24,7 @@ table=0 actions=learn(table=1,hard_timeout=10, > NXM_OF_VLAN_TCI[0..11],output:NXM > table=1 priority=0 actions=flood > ]]) > AT_CHECK([ovs-ofctl parse-flows flows.txt], [0], > -[[usable protocols: OpenFlow10+table_id,NXM+table_id,OXM,OpenFlow13 > +[[usable protocols: OXM,OpenFlow10+table_id,NXM+table_id > chosen protocol: OpenFlow10+table_id > OFPT_FLOW_MOD (xid=0x1): ADD table:255 > actions=learn(table=1,in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31]) > OFPT_FLOW_MOD (xid=0x2): ADD table:255 > actions=learn(table=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[]) > diff --git a/tests/ovs-ofctl.at b/tests/ovs-ofctl.at > index f7290a6..d94d75c 100644 > --- a/tests/ovs-ofctl.at > +++ b/tests/ovs-ofctl.at > @@ -78,7 +78,7 @@ actions=controller(max_len=123,reason=invalid_ttl,id=555) > AT_CHECK([ovs-ofctl parse-flows flows.txt > ], [0], [stdout]) > AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], > -[[usable protocols: NXM+table_id,OXM,OpenFlow13 > +[[usable protocols: OXM,NXM+table_id > chosen protocol: NXM+table_id > NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD > NXT_FLOW_MOD: ADD table:255 in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 > actions=drop > @@ -143,7 +143,7 @@ dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop > ]) > AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout]) > AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl > -usable protocols: NXM,OXM,OpenFlow13 > +usable protocols: NXM,OXM > chosen protocol: NXM-table_id > NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD > NXT_FLOW_MOD: ADD in_port=65534,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 > actions=drop > @@ -205,7 +205,7 @@ vlan_tci=0x1123/0x1fff,actions=drop > ]]) > AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], > [stderr]) > AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], > -[[usable protocols: NXM,OXM,OpenFlow13 > +[[usable protocols: NXM,OXM > chosen protocol: NXM-table_id > NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), > NXM_OF_TCP_SRC(007b) actions=FLOOD > NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), > NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop > @@ -1875,10 +1875,10 @@ dnl Check that "-F openflow10" rejects a flow_mod > with unsupported features, > dnl such as tunnels and metadata. > AT_SETUP([ovs-ofctl -F option and NXM features]) > AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop], > - [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow13) > is among the allowed flow formats (OpenFlow10) > + [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among > the allowed flow formats (OpenFlow10) > ]) > AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop], > - [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow13) > is among the allowed flow formats (OpenFlow10) > + [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among > the allowed flow formats (OpenFlow10) > ]) > AT_CLEANUP > > @@ -1913,7 +1913,7 @@ dnl can't be represented in OpenFlow 1.0. > AT_SETUP([ovs-ofctl dump-flows rejects bad -F option]) > OVS_VSWITCHD_START > AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], > [1], [], > - [ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow13) is among > the allowed flow formats (OpenFlow10) > + [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed > flow formats (OpenFlow10) > ]) > OVS_VSWITCHD_STOP > AT_CLEANUP > diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in > index 5e70dba..5ac4f97 100644 > --- a/utilities/ovs-ofctl.8.in > +++ b/utilities/ovs-ofctl.8.in > @@ -1369,6 +1369,11 @@ registers. Open vSwitch 1.1 and later supports this > flow format. > This combines Nicira Extended match with the ability to place a flow > in a specific table. Open vSwitch 1.2 and later supports this flow > format. > +. > +.IP "\fBOXM-OpenFlow12\fR" > +.IQ "\fBOXM-OpenFlow13\fR" > +These are the standard OXM (OpenFlow Extensible Match) flow format in > +OpenFlow 1.2 and 1.3, respectively. > .RE > . > .IP > @@ -1381,6 +1386,8 @@ Any supported flow format. > \fBOpenFlow10\-table_id\fR or \fBOpenFlow10+table_id\fR. > .IP "\fBNXM\fR" > \fBNXM\-table_id\fR or \fBNXM+table_id\fR. > +.IP "\fBOXM\fR" > +\fBOXM-OpenFlow12\fR or \fBOXM-OpenFlow13\fR. > .RE > . > .IP > -- > 1.7.10.4 > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
