Hi,

Using OpenFlow v1.3.5 and onwards OVS 2.5.0 returns OFPGMFC_INVALID_GROUP error 
when an INDIRECT type of group deletion requested,
although the delete message is according to OpenFlow v1.3.5 standard.

The reason is the conflicting protocol check in Open  vSwitch's OpenFlow 
termination, that is
the indirect  group delete command is once checked not to include any bucket - 
as described in standard,
and secondly checked to include exactly one bucket - as also mandatory for 
indirect groups.

This error is not seen in the OVS internal make time verification (make check), 
as ovs-ofctl CLI tool does not accept group type as command argument.
Therefore indirect group delete works, although internally it is converted into 
ALL group type.

The fix is simply to ignore the mandatory single bucket check in case of 
indirect group delete.
On the other hand the check is still executed in case of group addition or 
modification.

Moreover to this it is planned to extend 'ovs-ofctl del-groups' arguments with 
a group 'type' as well to for test purposes.

Signed-off-by: László Sűrű <laszlo.s...@ericsson.com>

---

diff --git a/lib/ofp-util.c b/lib/ofp-util.c
index 97e4608..190ba90 100644
--- a/lib/ofp-util.c
+++ b/lib/ofp-util.c
@@ -9140,7 +9140,7 @@ ofputil_decode_group_mod(const struct ofp_header *oh,

     switch (gm->type) {
     case OFPGT11_INDIRECT:
-        if (!list_is_singleton(&gm->buckets)) {
+        if ((gm->command != OFPGC11_DELETE) && 
!list_is_singleton(&gm->buckets)) {
             return OFPERR_OFPGMFC_INVALID_GROUP;
         }
         break;

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to