On Thu, Aug 25, 2022 at 12:29:36PM +0200, Ilya Maximets wrote: > On 8/24/22 21:29, Aaron Conole wrote: > > lic121 <lic...@chinatelecom.cn> writes: > > > >> Support running a list of scripts after vswitchd start, so that we can > >> make some runtime config persistence across ovs restart. For example, > >> the config that `ovs-appctl dpctl` makes. > >> > >> Signed-off-by: lic121 <lic...@chinatelecom.cn> > >> --- > > > > This is an interesting patch. I'm thinking that there is some value in > > having a post-start mechanism like this because we talked years ago on > > the list about having a way to do things like changing thread > > priorities to RT[1], etc. These are things that OVS might not want to > > have the complicated configuration knobs required to provide, but a > > post-start script could perform and would be easy to see just by looking > > at the post-start directory. > > Hmm. that might be useful, but I'm not sure if ovn-ctl is a right place. > On most of the systems OVS is managed by systemd or some other init system. > And most of such systems has post-start hooks. For example, users may > add their scripts into ExecStartPost of a systemd service file. This > should also give more visibility to the end user and, probably, more > flexibility in the configuration by having also pre-start hooks and other > tuning options. > > > > > OTOH, I think that if there are ovs-appctl settings that we want to make > > persistent, then it would make a lot more sense to just expose those > > settings via the database (which is persistent). Maybe there is a > > reason to keep some as post-start configurable only, but I can't think > > of any that we wouldn't also want to just put into the DB. > > That's a good point. If you want something to be preserved across restarts, > the database is exactly the place to store the configuration.
Ilya, thanks for your review on this patch. Would you mind have a look at the patch that persistent max ct connection configureation. https://patchwork.ozlabs.org/project/openvswitch/patch/1653105300-28434-1-git-send-email-lic...@chinatelecom.cn/ > > For the mentioned vlog configuration, we already have ovs-ctl knobs that > will place desired logging options into cmdline, IIRC. > > Best regards, Ilya Maximets. > > > > > [1]: > > https://lists.linuxfoundation.org/pipermail/ovs-dev/2017-January/327025.html > > > >> Documentation/ref/ovs-ctl.8.rst | 9 +++++++++ > >> NEWS | 2 ++ > >> utilities/ovs-ctl.in | 11 +++++++++++ > >> 3 files changed, 22 insertions(+) > >> > >> diff --git a/Documentation/ref/ovs-ctl.8.rst > >> b/Documentation/ref/ovs-ctl.8.rst > >> index 7cfc413..380ef06 100644 > >> --- a/Documentation/ref/ovs-ctl.8.rst > >> +++ b/Documentation/ref/ovs-ctl.8.rst > >> @@ -37,6 +37,15 @@ system administrators but to be called internally by > >> system startup > >> scripts. > >> > >> > >> +Ovs has a lot of runtime configurations which can't survive from > >> +service restart. For example, the vlog level config, dpctl/set > >> +config and flows. To persistent runtime configurations, we now > >> +support running a list of scripts after vswitchd process. Just > >> +put your scripts under ``etcdir/post_scripts_vswitchd/`` and with > >> +``.sh`` suffix, ovs-ctl start/restart will auto execute your > >> +scripts one by one. > >> + > >> + > >> Each ``ovs-ctl`` command is described separately below. > >> > >> The ``start`` command > >> diff --git a/NEWS b/NEWS > >> index 024fa44..9387d37 100644 > >> --- a/NEWS > >> +++ b/NEWS > >> @@ -81,6 +81,8 @@ v3.0.0 - xx xxx xxxx > >> - Linux TC offload: > >> * Add support for offloading meters via tc police. > >> * Add support for offloading the check_pkt_len action. > >> + - ovs-ctl: > >> + * Support ovs post start scripts > >> - New configuration knob 'other_config:all-members-active' for > >> balance-slb bonds. > >> - Previously deprecated Linux kernel module is now fully removed from > >> diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in > >> index e6e07f4..a765ef3 100644 > >> --- a/utilities/ovs-ctl.in > >> +++ b/utilities/ovs-ctl.in > >> @@ -226,9 +226,18 @@ do_start_forwarding () { > >> fi > >> } > >> > >> +run_post_start_scripts () { > >> + mkdir -p $POST_SCRIPTS_DIR_VSWITCHD > > > > I'm not thrilled about this. We shouldn't be generating this > > directory. If it exists, then we can use, otherwise, we should bail. > > > >> + for f in `ls $POST_SCRIPTS_DIR_VSWITCHD/*.sh 2>/dev/null|| true` > >> + do > > > > I'm not a scripting expert, but I don't think we want to work it like > > this. Further, we should consider that we can use some information that > > the script has to pass on to the post-script. As an example, we might > > want to pass the OVS_RUNDIR (which makes determining which daemons are > > running a bit easier). > > > >> + action "Running post script $f" bash $f > >> + done > >> +} > >> + > >> start_forwarding () { > >> if test X"$OVS_VSWITCHD" = Xyes; then > >> do_start_forwarding || return 1 > >> + run_post_start_scripts || return 1 > >> fi > >> if test X"$RECORD_HOSTNAME" = Xyes; then > >> set_hostname & > >> @@ -348,6 +357,8 @@ set_defaults () { > >> DB_SCHEMA=$datadir/vswitch.ovsschema > >> EXTRA_DBS= > >> > >> + POST_SCRIPTS_DIR_VSWITCHD=$etcdir/post_scripts_vswitchd > >> + > >> PROTOCOL=gre > >> DPORT= > >> SPORT= > > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev