On 12/4/23 06:11, Ales Musil wrote:
> 
> 
> On Sat, Dec 2, 2023 at 12:21 AM Ilya Maximets <i.maxim...@ovn.org 
> <mailto:i.maxim...@ovn.org>> wrote:
> 
>     On 11/30/23 08:31, Ales Musil wrote:
>     > CT flush extension would silently ignore unknown properties,
>     > which could lead to potential surprise by deleting more than
>     > it was requested to. Return error on unknown property instead
>     > to avoid this problem and at the same time inform the user
>     > that the specified property is not supported.
>     >
>     > Fixes: 08146bf7d9b4 ("openflow: Add extension to flush CT by generic 
> match.")
>     > Signed-off-by: Ales Musil <amu...@redhat.com <mailto:amu...@redhat.com>>
>     > ---
>     > v2: Rebase on top of current master.
>     >     Address comments from Ilya:
>     >     - Add the check also into ofp_ct_tuple_decode_nested.
>     > ---
>     >  lib/ofp-ct.c       | 11 +++++++++++
>     >  tests/ofp-print.at <http://ofp-print.at> | 18 ++++++++++++++++++
>     >  2 files changed, 29 insertions(+)
>     >
>     > diff --git a/lib/ofp-ct.c b/lib/ofp-ct.c
>     > index 85a9d8bec..53964cf09 100644
>     > --- a/lib/ofp-ct.c
>     > +++ b/lib/ofp-ct.c
>     > @@ -31,6 +31,9 @@
>     >  #include "openvswitch/ofp-prop.h"
>     >  #include "openvswitch/ofp-util.h"
>     >  #include "openvswitch/packets.h"
>     > +#include "openvswitch/vlog.h"
>     > +
>     > +VLOG_DEFINE_THIS_MODULE(ofp_ct);
>     > 
>     >  static void
>     >  ofp_ct_tuple_format(struct ds *ds, const struct ofp_ct_tuple *tuple,
>     > @@ -286,6 +289,10 @@ ofp_ct_tuple_decode_nested(struct ofpbuf 
> *property, struct ofp_ct_tuple *tuple,
>     >          case NXT_CT_TUPLE_ICMP_CODE:
>     >              error = ofpprop_parse_u8(&inner, &tuple->icmp_code);
>     >              break;
>     > +
>     > +        default:
>     > +            error = OFPPROP_UNKNOWN(false, "ofp_ct_tuple", type);
>     > +            break;
>     >          }
>     > 
>     >          if (error) {
>     > @@ -377,6 +384,10 @@ ofp_ct_match_decode(struct ofp_ct_match *match, 
> bool *with_zone,
>     >              }
>     >              error = ofpprop_parse_u16(&property, zone_id);
>     >              break;
>     > +
>     > +        default:
>     > +            error = OFPPROP_UNKNOWN(false, "ofp_ct_match", type);
>     > +            break;
>     >          }
>     > 
>     >          if (error) {
>     > diff --git a/tests/ofp-print.at <http://ofp-print.at> 
> b/tests/ofp-print.at <http://ofp-print.at>
>     > index 14aa55416..b4b4c6685 100644
>     > --- a/tests/ofp-print.at <http://ofp-print.at>
>     > +++ b/tests/ofp-print.at <http://ofp-print.at>
>     > @@ -4180,4 +4180,22 @@ AT_CHECK([ovs-ofctl ofp-print "\
>     >  00 01 00 20 00 00 00 00 \
>     >  00 00 00 14 00 00 00 00 00 00 00 00 00 00 ff ff 0a 0a 00 02 00 00 00 
> 00 \
>     >  " | grep -q OFPBPC_BAD_VALUE], [0])
>     > +
>     > +AT_CHECK([ovs-ofctl ofp-print "\
>     > +01 04 00 20 00 00 00 03 00 00 23 20 00 00 00 20 \
>     > +06 \
>     > +00 00 00 00 00 00 00 \
>     > +00 80 00 08 00 00 00 00 \
>     > +"| grep -q OFPBPC_BAD_TYPE], [0], [ignore], [stderr])
>     > +AT_CHECK([grep -q "unknown ofp_ct_match property type 128" stderr], 
> [0])
> 
>     Hmm, the 'ofp_ct_match' is not really something user-visible.
>     I think, it's better to point to the actual OpenFlow entity
>     here, i.e. 'NXT_CT_FLUSH'.
> 
>     > +
>     > +AT_CHECK([ovs-ofctl ofp-print "\
>     > +01 04 00 28 00 00 00 03 00 00 23 20 00 00 00 20 \
>     > +06 \
>     > +00 00 00 00 00 00 00 \
>     > +00 00 00 10 00 00 00 00 \
>     > +00 80 00 08 00 50 00 00 \
>     > +"| grep -q OFPBPC_BAD_TYPE], [0], [ignore], [stderr])
>     > +AT_CHECK([grep -q "unknown ofp_ct_tuple property type 128" stderr], 
> [0])
> 
>     Same here.  We do not have a direct replacement, but something like
>     'NXT_CT_TUPLE' might make sense as it is a prefix of the actual
>     properties here.
> 
>     If you agree, I can replace these while applying the patch.
> 
>     WDYT?
> 
> 
> That sounds reasonable.

Thanks!  I made the change.
Applied and backported down to 3.1.

Best regards, Ilya Maximets.

>  
> 
> 
>     Best regards, Ilya Maximets.
> 
> Thanks,
> Ales
> 
> -- 
> 
> Ales Musil
> 
> Senior Software Engineer - OVN Core
> 
> Red Hat EMEA <https://www.redhat.com>
> 
> amu...@redhat.com <mailto:amu...@redhat.com> 
> 
> <https://red.ht/sig>
> 

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to