On Tue, May 17, 2022 at 09:06:24AM -0400, Aaron Conole wrote:
> lic121 <[email protected]> writes:
> 
> > Max allowed userspace dp conntrack entries is configurable with
> > 'ovs-appctl dpctl/ct-set-maxconns' command. In real scenarios,
> > this configuration is expected to survive from host reboot, from
> > ovs service restart.
> >
> > Signed-off-by: lic121 <[email protected]>
> > ---
> 
> Sorry - just one last comment, and then I think this can go in.
> 
> Please add a warning to dpctl_ct_set_maxconns that also flags the
> deprecation, and add a NEWS entry as well.  That way end users are aware
> of the change.  If you want to add NEWS entry as a separate patch
> (because those can generate git-am related issues) that's probably okay.

No worry, and thanks for your careful review. I will add warning and add NEWS in
the next version.

> 
> > Notes:
> >     v2:
> >       - rename "ct-maxconns" to "userspace-ct-maxconns"
> >
> >  lib/dpctl.man           |  4 +++-
> >  lib/dpif-netdev.c       | 11 +++++++++++
> >  tests/system-traffic.at | 10 ++++++++++
> >  vswitchd/vswitch.xml    |  7 +++++++
> >  4 files changed, 31 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/dpctl.man b/lib/dpctl.man
> > index c100d0a..4f08a3f 100644
> > --- a/lib/dpctl.man
> > +++ b/lib/dpctl.man
> > @@ -343,7 +343,9 @@ system due to connection tracking or simply limiting 
> > connection
> >  tracking.  If the number of connections is already over the new maximum
> >  limit request then the new maximum limit will be enforced when the
> >  number of connections decreases to that limit, which normally happens
> > -due to connection expiry.  Only supported for userspace datapath.
> > +due to connection expiry.  Only supported for userspace datapath. This
> > +command is deprecated by ovsdb cfg other_config:userspace-ct-maxconns
> > +because of persistence capability.
> >  .
> >  .TP
> >  \*(DX\fBct\-get\-maxconns\fR [\fIdp\fR]
> > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> > index 6764343..e2348a1 100644
> > --- a/lib/dpif-netdev.c
> > +++ b/lib/dpif-netdev.c
> > @@ -4827,6 +4827,17 @@ dpif_netdev_set_config(struct dpif *dpif, const 
> > struct smap *other_config)
> >          }
> >      }
> >  
> > +    uint32_t ct_maxconns, cur_maxconns;
> > +    ct_maxconns = smap_get_int(other_config, "userspace-ct-maxconns",
> > +                               UINT32_MAX);
> > +    /* Leave runtime value as it is when cfg is removed. */
> > +    if (ct_maxconns < UINT32_MAX) {
> > +        conntrack_get_maxconns(dp->conntrack, &cur_maxconns);
> > +        if (ct_maxconns != cur_maxconns) {
> > +            conntrack_set_maxconns(dp->conntrack, ct_maxconns);
> > +        }
> > +    }
> > +
> >      bool smc_enable = smap_get_bool(other_config, "smc-enable", false);
> >      bool cur_smc;
> >      atomic_read_relaxed(&dp->smc_enable_db, &cur_smc);
> > diff --git a/tests/system-traffic.at b/tests/system-traffic.at
> > index 4a7fa49..82ea992 100644
> > --- a/tests/system-traffic.at
> > +++ b/tests/system-traffic.at
> > @@ -2258,6 +2258,16 @@ AT_CHECK([ovs-appctl dpctl/ct-get-maxconns], [], [dnl
> >  10
> >  ])
> >  
> > +AT_CHECK([ovs-vsctl set Open_vswitch . 
> > other_config:userspace-ct-maxconns=20], [0])
> > +AT_CHECK([ovs-appctl dpctl/ct-get-maxconns], [], [dnl
> > +20
> > +])
> > +
> > +AT_CHECK([ovs-vsctl remove Open_vswitch . other_config 
> > userspace-ct-maxconns], [0])
> > +AT_CHECK([ovs-appctl dpctl/ct-get-maxconns], [], [dnl
> > +20
> > +])
> > +
> >  OVS_TRAFFIC_VSWITCHD_STOP
> >  AT_CLEANUP
> >  
> > diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
> > index 0c66326..48f05d7 100644
> > --- a/vswitchd/vswitch.xml
> > +++ b/vswitchd/vswitch.xml
> > @@ -183,6 +183,13 @@
> >          </p>
> >        </column>
> >  
> > +      <column name="other_config" key="userspace-ct-maxconns"
> > +              type='{"type": "integer", "minInteger": 0}'>
> > +        The maximum number of connection tracker entries allowed in the
> > +        userspace datapath.  This deprecates "ovs-appctl 
> > dpctl/ct-set-maxconns"
> > +        command.
> > +      </column>
> > +
> >        <column name="other_config" key="max-idle"
> >                type='{"type": "integer", "minInteger": 500}'>
> >          <p>
> 
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to