From time to time it confuses users that "group" actions disappear when using OpenFlow 1.0.
Signed-off-by: Ben Pfaff <b...@ovn.org> --- NEWS | 1 + lib/ofp-actions.c | 12 ++++-------- tests/ofp-actions.at | 3 +++ utilities/ovs-ofctl.8.in | 6 ++++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/NEWS b/NEWS index 188e23f..b376420 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,7 @@ Post-v2.5.0 packet to size M bytes when outputting to port N. * New command OFPGC_ADD_OR_MOD for OFPT_GROUP_MOD message that adds a new group or modifies an existing groups + * New OpenFlow extension to support the "group" action in OpenFlow 1.0. - ovs-ofctl: * queue-get-config command now allows a queue ID to be specified. * '--bundle' option can now be used with OpenFlow 1.3. diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c index 997cc15..0aafe0a 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -196,8 +196,8 @@ enum ofp_raw_action_type { /* NX1.0(4), OF1.1+(21): uint32_t. */ OFPAT_RAW_SET_QUEUE, - /* OF1.1+(22): uint32_t. */ - OFPAT_RAW11_GROUP, + /* NX1.0(40), OF1.1+(22): uint32_t. */ + OFPAT_RAW_GROUP, /* OF1.1+(23): uint8_t. */ OFPAT_RAW11_SET_NW_TTL, @@ -619,7 +619,7 @@ format_OUTPUT(const struct ofpact_output *a, struct ds *s) /* Group actions. */ static enum ofperr -decode_OFPAT_RAW11_GROUP(uint32_t group_id, +decode_OFPAT_RAW_GROUP(uint32_t group_id, enum ofp_version ofp_version OVS_UNUSED, struct ofpbuf *out) { @@ -631,11 +631,7 @@ static void encode_GROUP(const struct ofpact_group *group, enum ofp_version ofp_version, struct ofpbuf *out) { - if (ofp_version == OFP10_VERSION) { - /* XXX */ - } else { - put_OFPAT11_GROUP(out, group->group_id); - } + put_OFPAT_GROUP(out, ofp_version, group->group_id); } static char * OVS_WARN_UNUSED_RESULT diff --git a/tests/ofp-actions.at b/tests/ofp-actions.at index ca4d1ba..23d3202 100644 --- a/tests/ofp-actions.at +++ b/tests/ofp-actions.at @@ -244,6 +244,9 @@ fe800000 00000000 020c 29ff fe88 a18b dnl # actions=output(port=1,max_len=100) ffff 0010 00002320 0027 0001 00000064 +# actions=group:5 +ffff 0010 00002320 0028 0000 00000005 + # bad OpenFlow10 actions: NXBRC_MUST_BE_ZERO ffff 0018 00002320 0025 0000 0005 0000 1122334455 000005 diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in index 0d91e5f..8413f18 100644 --- a/utilities/ovs-ofctl.8.in +++ b/utilities/ovs-ofctl.8.in @@ -1534,8 +1534,10 @@ Packets larger than \fInbytes\fR will be trimmed to \fInbytes\fR while packets smaller than \fInbytes\fR remains the original size. . .IP \fBgroup:\fIgroup_id\fR -Outputs the packet to the OpenFlow group \fIgroup_id\fR. Group tables -are only supported in OpenFlow 1.1+. See Group Syntax for more details. +Outputs the packet to the OpenFlow group \fIgroup_id\fR. OpenFlow 1.1 +introduced support for groups; Open vSwitch also supports output to +groups as an extension to OpenFlow 1.0. See \fBGroup Syntax\fR for +more details. . .IP \fBnormal\fR Subjects the packet to the device's normal L2/L3 processing. (This -- 2.1.3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev