On Thu, Aug 21, 2025 at 5:29 PM Mark Michelson <[email protected]> wrote:
>
> Hi Numan, I have one comment below.
>
> On 8/11/25 6:10 AM, [email protected] wrote:
> > From: Numan Siddique <[email protected]>
> >
> > Signed-off-by: Numan Siddique <[email protected]>
> > ---
> >   utilities/ovn-ctl       | 163 ++++++++++++++++++++++++++++++++++++++++
> >   utilities/ovn-ctl.8.xml |  36 +++++++++
> >   2 files changed, 199 insertions(+)
> >
> > diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
> > index acbeacd099..5af2db17cb 100755
> > --- a/utilities/ovn-ctl
> > +++ b/utilities/ovn-ctl
> > @@ -444,6 +444,11 @@ start_ic_ovsdb () {
> >       start_ic_sb_ovsdb
> >   }
> >
> > +
> > +start_ovnbr_ovsdb() {
> > +    start_ovsdb__ OVNBR br OVN_Bridge_Controller BR_Global
> > +}
> > +
> >   sync_status() {
> >       local ctl_file=$1
> >       ovn-appctl -t $ctl_file ovsdb-server/sync-status | \
> > @@ -510,6 +515,14 @@ status_ic_ovsdb () {
> >     fi
> >   }
> >
> > +status_ovnbr_ovsdb() {
> > +    if ! pidfile_is_running $DB_OVNBR_PIDFILE; then
> > +        echo "not-running"
> > +    else
> > +        echo "running/$(sync_status $DB_OVNBR_CTRL_SOCK)"
> > +    fi
> > +}
> > +
> >   run_nb_ovsdb() {
> >       DB_NB_DETACH=no
> >       start_nb_ovsdb
> > @@ -535,6 +548,11 @@ run_ic_sb_ovsdb() {
> >       start_ic_sb_ovsdb
> >   }
> >
> > +run_ovnbr_ovsdb() {
> > +    DB_NB_DETACH=no
> > +    start_ovnbr_ovsdb
> > +}
> > +
> >   start_northd () {
> >       if [ ! -e $ovn_northd_db_conf_file ]; then
> >           if test X"$OVN_MANAGE_OVSDB" = Xyes; then
> > @@ -717,6 +735,40 @@ start_controller_vtep () {
> >       OVS_RUNDIR=${OVS_RUNDIR} start_ovn_daemon "$OVN_CONTROLLER_PRIORITY" 
> > "$OVN_CONTROLLER_WRAPPER" "$@"
> >   }
> >
> > +start_ovnbr_controller () {
> > +    set ovn-br-controller
> > +    set "$@" -vconsole:emer -vsyslog:err -vfile:info
> > +    if test X"$OVN_CONTROLLER_SSL_KEY" != X; then
> > +        set "$@" --private-key=$OVN_CONTROLLER_SSL_KEY
> > +    fi
> > +    if test X"$OVN_CONTROLLER_SSL_CERT" != X; then
> > +        set "$@" --certificate=$OVN_CONTROLLER_SSL_CERT
> > +    fi
> > +    if test X"$OVN_CONTROLLER_SSL_CA_CERT" != X; then
> > +        set "$@" --ca-cert=$OVN_CONTROLLER_SSL_CA_CERT
> > +    fi
> > +    if test X"$OVN_CONTROLLER_SSL_BOOTSTRAP_CA_CERT" != X; then
> > +        set "$@" --bootstrap-ca-cert=$OVN_CONTROLLER_SSL_BOOTSTRAP_CA_CERT
> > +    fi
> > +    if test X"$OVN_CONTROLLER_SSL_PROTOCOLS" != X; then
> > +        set "$@" --ssl-protocols=$OVN_CONTROLLER_SSL_PROTOCOLS
> > +    fi
> > +    if test X"$OVN_CONTROLLER_SSL_CIPHERS" != X; then
> > +        set "$@" --ssl-ciphers=$OVN_CONTROLLER_SSL_CIPHERS
> > +    fi
> > +    if test X"$OVN_CONTROLLER_SSL_CIPHERSUITES" != X; then
> > +        set "$@" --ssl-ciphersuites=$OVN_CONTROLLER_SSL_CIPHERSUITES
> > +    fi
>
> All of the tests above are for OVN_CONTROLLER SSL values instead of
> OVN_BRCONTROLLER SSL values.

Oops.  Thanks for pointing this out.  I'll address it in v2.

Numan

>
> > +
> > +    [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"
> > +
> > +    if test X"$extra_args" != X; then
> > +        set "$@" $extra_args
> > +    fi
> > +
> > +    OVS_RUNDIR=${OVS_RUNDIR} start_ovn_daemon "$OVN_CONTROLLER_PRIORITY" 
> > "$OVN_CONTROLLER_WRAPPER" "$@"
> > +}
> > +
> >   ## ---- ##
> >   ## stop ##
> >   ## ---- ##
> > @@ -747,6 +799,10 @@ stop_controller_vtep () {
> >       OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovn-controller-vtep
> >   }
> >
> > +stop_ovnbr_controller () {
> > +    OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovn-br-controller
> > +}
> > +
> >   ## ------- ##
> >   ## restart ##
> >   ## ------- ##
> > @@ -807,6 +863,16 @@ restart_sb_relay_ovsdb() {
> >       start_sb_relay_ovsdb
> >   }
> >
> > +restart_ovnbr_ovsdb () {
> > +    stop_ovnbr_ovsdb
> > +    start_ovnbr_ovsdb
> > +}
> > +
> > +restart_ovnbr_controller () {
> > +    stop_ovnbr_controller
> > +    start_ovnbr_controller
> > +}
> > +
> >   ## ---- ##
> >   ## main ##
> >   ## ---- ##
> > @@ -870,6 +936,7 @@ set_defaults () {
> >       DB_SB_SCHEMA=$ovn_datadir/ovn-sb.ovsschema
> >       DB_IC_NB_SCHEMA=$ovn_datadir/ovn-ic-nb.ovsschema
> >       DB_IC_SB_SCHEMA=$ovn_datadir/ovn-ic-sb.ovsschema
> > +    DB_OVNBR_SCHEMA=$ovn_datadir/ovn-br.ovsschema
> >
> >       DB_SOCK=$OVS_RUNDIR/db.sock
> >       DB_CONF_FILE=$dbdir/conf.db
> > @@ -1020,6 +1087,39 @@ set_defaults () {
> >       DB_CLUSTER_SCHEMA_UPGRADE="yes"
> >
> >       OVN_CONTROLLER_SYSTEM_ID=""
> > +
> > +    DB_OVNBR_SOCK=$OVN_RUNDIR/ovnbr_db.sock
> > +    DB_OVNBR_PIDFILE=$OVN_RUNDIR/ovnbr_db.pid
> > +    DB_OVNBR_CTRL_SOCK=$OVN_RUNDIR/ovnbr_db.ctl
> > +    DB_OVNBR_FILE=$ovn_dbdir/ovnbr_db.db
> > +    DB_OVNBR_ADDR=0.0.0.0
> > +    DB_OVNBR_PORT=6651
> > +
> > +    OVNBR_CONTROLLER_PRIORITY=-10
> > +    OVNBR_CONTROLLER_WRAPPER=
> > +
> > +    OVNBR_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info"
> > +    OVN_OVNBR_LOGFILE="$ovn_logdir/ovsdb-server-ovnbr.log"
> > +
> > +    OVNBR_CONTROLLER_SSL_KEY=""
> > +    OVNBR_CONTROLLER_SSL_CERT=""
> > +    OVNBR_CONTROLLER_SSL_CA_CERT=""
> > +    OVNBR_CONTROLLER_SSL_BOOTSTRAP_CA_CERT=""
> > +    OVNBR_CONTROLLER_SSL_PROTOCOLS=""
> > +    OVNBR_CONTROLLER_SSL_CIPHERS=""
> > +    OVNBR_CONTROLLER_SSL_CIPHERSUITES=""
> > +
> > +    DB_OVNBR_CREATE_INSECURE_REMOTE="no"
> > +
> > +    DB_OVNBR_DETACH="yes"
> > +    DB_OVNBR_USE_REMOTE_IN_DB="yes"
> > +
> > +    OVNBR_DB_SSL_KEY=""
> > +    OVNBR_DB_SSL_CERT=""
> > +    OVNBR_DB_SSL_CA_CERT=""
> > +    OVNBR_DB_SSL_PROTOCOLS=""
> > +    OVNBR_DB_SSL_CIPHERS=""
> > +    OVNBR_DB_SSL_CIPHERSUITES=""
> >   }
> >
> >   set_option () {
> > @@ -1096,6 +1196,15 @@ Commands:
> >     demote_ic_sb                demote ovn ic-southbound db active server 
> > to backup
> >     run_ic_nb_ovsdb                run ovn ic-northbound db ovsdb-server 
> > process
> >     run_ic_sb_ovsdb                run ovn ic-southbound db ovsdb-server 
> > process
> > +  start_ovnbr_ovsdb           start ovn bridge controller db ovsdb-server 
> > process
> > +  start_ovnbr_controller      start ovn-br-controller
> > +  stop_ovnbr_ovsdb            stop ovn bridge controller db ovsdb-server 
> > process
> > +  stop_ovnbr_controller       stop ovn-br-controller
> > +  restart_ovnbr_ovsdb         restart ovn bridge controller db 
> > ovsdb-server process
> > +  restart_ovnbr_controller    restart ovn-br-controller
> > +  status_ovnbr_ovsdb          status ovn bridge controller db ovsdb-server 
> > processes
> > +  status_ovnbr_controller     status ovn-br-controller
> > +  run_ovnbr_ovsdb             run bridge controller db ovsdb-server process
> >
> >   Options:
> >     --ovn-northd-priority=NICE     set ovn-northd's niceness (default: 
> > $OVN_NORTHD_PRIORITY)
> > @@ -1173,6 +1282,24 @@ Options:
> >     --db-sb-relay-remote           Specifies upstream cluster/server remote 
> > for ovsdb relay
> >     --db-sb-relay-use-remote-in-db=no|yes
> >                                    OVN_Sorthbound db listen on target 
> > connection table (default: $DB_SB_RELAY_USE_REMOTE_IN_DB)
> > +  --ovn-br-controller-priority=NICE     set ovn-br-controller's niceness 
> > (default: $OVN_CONTROLLER_PRIORITY)
> > +  --ovn-br-controller-wrapper=WRAPPER   run with a wrapper like valgrind 
> > for debugging
> > +  --ovn-br-controller-ssl-key=KEY OVN Bridge Controller SSL/TLS private 
> > key file
> > +  --ovn-br-controller-ssl-cert=CERT OVN Bridge Controller SSL/TLS 
> > certificate file
> > +  --ovn-br-controller-ssl-ca-cert=CERT OVN Bridge Controller SSL/TLS CA 
> > certificate file
> > +  --ovn-br-controller-ssl-bootstrap-ca-cert=CERT Bootstrapped OVN Bridge 
> > Controller SSL/TLS CA certificate file
> > +  --ovn-br-controller-ssl-protocols=PROTOCOLS OVN Bridge Controller 
> > SSL/TLS protocols
> > +  --ovn-br-controller-ssl-ciphers=CIPHERS OVN Bridge Controller SSL/TLS 
> > cipher list
> > +  --ovn-br-controller-ssl-ciphersuites=CIPHERSUITES OVN Bridge Controller 
> > TLSv1.3+ ciphersuite list
> > +  --ovn-br-db-ssl-key=KEY OVN Bridge Controller DB SSL/TLS private key file
> > +  --ovn-br-db-ssl-cert=CERT OVN Bridge Controller DB SSL/TLS certificate 
> > file
> > +  --ovn-br-db-ssl-ca-cert=CERT OVN Bridge Controller DB SSL/TLS CA 
> > certificate file
> > +  --ovn-br-db-ssl-protocols=PROTOCOLS OVN Bridge Controller DB SSL/TLS 
> > protocols
> > +  --ovn-br-db-ssl-ciphers=CIPHERS OVN Bridge Controller DB SSL/TLS cipher 
> > list
> > +  --ovn-br-db-ssl-ciphersuites=CIPHERSUITES OVN Bridge Controller DB 
> > TLSv1.3+ ciphersuite list
> > +  --ovn-br-controller-log=STRING        ovn controller process logging 
> > params (default: $OVN_CONTROLLER_LOG)
> > +  --ovn-br-db-log=STRING             ovn brdb ovsdb-server processes 
> > logging params (default: $OVN_BR_DB_LOG)
> > +  --ovsdb-br-wrapper=WRAPPER     run with a wrapper like valgrind for 
> > debugging
> >     -h, --help                     display this help message
> >
> >   File location options:
> > @@ -1305,12 +1432,22 @@ File location options:
> >     --ovn-sb-relay-db-ssl-cert=CERT OVN_Southbound DB relay SSL/TLS 
> > certificate file
> >     --ovn-sb-relay-db-ssl-ca-cert=CERT OVN OVN_Southbound DB relay SSL/TLS 
> > CA certificate file
> >     --db-cluster-schema-upgrade=yes|no (default: $DB_CLUSTER_SCHEMA_UPGRADE)
> > +  --db-ovnbr-sock=SOCKET  OVN_Bridge_Controller db socket (default: 
> > $DB_OVNBR_SOCK)
> > +  --db-ovnbr-file=FILE    OVN_Bridge_Controller db file (default: 
> > $DB_OVNBR_FILE)
> > +  --db-ovnbr-pidfile=FILE OVN_Bridge_Controller db pidfile (default: 
> > $DB_OVNBR_PIDFILE)
> > +  --db-ovnbr-schema=FILE  OVN_Bridge_Controller db file (default: 
> > $DB_OVNBR_SCHEMA)
> > +  --db-ovnbr-addr=ADDR    OVN_Bridge_Controller db ptcp address (default: 
> > $DB_OVNBR_ADDR)
> > +  --db-ovnbr-port=PORT    OVN_Bridge_Controller db ptcp port (default: 
> > $DB_OVNBR_PORT)
> > +  --db-ovnbr-ctrl-sock=SOCKET OVN_Bridge_Controller db control socket 
> > (default: $DB_OVNBR_CTRL_SOCK)
> > +  --ovn-ovnbr-logfile=FILE OVN_Bridge_Controller log file (default: 
> > $OVN_OVNBR_LOGFILE)
> > +  --db-ovnbr-create-insecure-remote=yes|no Create ptcp 
> > OVN_Bridge_Controller remote (default: $DB_OVNBR_CREATE_INSECURE_REMOTE)
> >
> >   Default directories with "configure" option and environment variable 
> > override:
> >     logs: /usr/local/var/log/ovn (--with-logdir, OVN_LOGDIR)
> >     pidfiles and sockets: /usr/local/var/run/ovn (--with-rundir, OVN_RUNDIR)
> >     ovn-nb.db: /usr/local/etc/ovn (--with-dbdir, OVN_DBDIR)
> >     ovn-sb.db: /usr/local/etc/ovn (--with-dbdir, OVN_DBDIR)
> > +  ovn-ovnbr.db: /usr/local/etc/ovn (--with-dbdir, OVN_DBDIR)
> >     system configuration: /usr/local/etc (--sysconfdir, OVN_SYSCONFDIR)
> >     data files: /usr/local/share/ovn (--pkgdatadir, OVN_PKGDATADIR)
> >     user binaries: /usr/local/bin (--bindir, OVN_BINDIR)
> > @@ -1536,6 +1673,32 @@ case $command in
> >       run_ic_sb_ovsdb)
> >           run_ic_sb_ovsdb
> >           ;;
> > +    start_ovnbr_ovsdb)
> > +        start_ovnbr_ovsdb
> > +        ;;
> > +    start_ovnbr_controller)
> > +        start_ovnbr_controller
> > +        ;;
> > +    stop_ovnbr_ovsdb)
> > +        stop_ovnbr_ovsdb
> > +        ;;
> > +    stop_ovnbr_controller)
> > +        stop_ovnbr_controller
> > +        ;;
> > +    restart_ovnbr_ovsdb)
> > +        restart_ovnbr_ovsdb
> > +        ;;
> > +    restart_ovnbr_controller)
> > +        restart_ovnbr_controller
> > +        ;;
> > +    status_ovnbr_ovsdb)
> > +        status_ovnbr_ovsdb
> > +        ;;
> > +    status_ovnbr_controller)
> > +        daemon_status ovn-br-controller || exit 1
> > +        ;;
> > +    run_ovnbr_ovsdb)
> > +        run_ovnbr_ovsdb;;
> >       help)
> >           usage
> >           ;;
> > diff --git a/utilities/ovn-ctl.8.xml b/utilities/ovn-ctl.8.xml
> > index 99f512043e..0e03247469 100644
> > --- a/utilities/ovn-ctl.8.xml
> > +++ b/utilities/ovn-ctl.8.xml
> > @@ -58,6 +58,15 @@
> >         <dt><code>restart_ic_ovsdb</code></dt>
> >         <dt><code>run_ic_nb_ovsdb</code></dt>
> >         <dt><code>run_ic_sb_ovsdb</code></dt>
> > +      <dt><code>start_ovnbr_ovsdb</code></dt>
> > +      <dt><code>start_br_controller</code></dt>
> > +      <dt><code>stop_ovnbr_ovsdb</code></dt>
> > +      <dt><code>stop_br_controller</code></dt>
> > +      <dt><code>restart_ovnbr_ovsdb</code></dt>
> > +      <dt><code>restart_br_controller</code></dt>
> > +      <dt><code>status_ovnbr_ovsdb</code></dt>
> > +      <dt><code>status_br_controller</code></dt>
> > +      <dt><code>run_ovnbr_ovsdb</code></dt>
> >       </dl>
> >
> >       <h1>Options</h1>
> > @@ -69,6 +78,8 @@
> >       <p><code>--ovn-ic-wrapper=<var>WRAPPER</var></code></p>
> >       <p><code>--ovsdb-nb-wrapper=<var>WRAPPER</var></code></p>
> >       <p><code>--ovsdb-sb-wrapper=<var>WRAPPER</var></code></p>
> > +    <p><code>--ovn-br-controller-priority=<var>NICE</var></code></p>
> > +    <p><code>--ovn-br-controller-wrapper=<var>WRAPPER</var></code></p>
> >       <p><code>--ovn-user=<var>USER:GROUP</var></code></p>
> >       <p><code>-h</code> | <code>--help</code></p>
> >
> > @@ -95,6 +106,15 @@
> >       <p><code>--ovn-controller-ssl-cert=<var>CERT</var></code></p>
> >       <p><code>--ovn-controller-ssl-ca-cert=<var>CERT</var></code></p>
> >       
> > <p><code>--ovn-controller-ssl-bootstrap-ca-cert=<var>CERT</var></code></p>
> > +    <p><code>--db-ovnbr-sock=<var>SOCKET</var></code></p>
> > +    <p><code>--db-ovnbr-file=<var>FILE</var></code></p>
> > +    <p><code>--db-ovnbr-schema=<var>FILE</var></code></p>
> > +    <p><code>--db-ovnbr-create-insecure-remote=<var>yes|no</var></code></p>
> > +    <p><code>--db-ovnbr-config-file=<var>FILE</var></code></p>
> > +    <p><code>--ovn-br-controller-ssl-key=<var>KEY</var></code></p>
> > +    <p><code>--ovn-br-controller-ssl-cert=<var>CERT</var></code></p>
> > +    <p><code>--ovn-br-controller-ssl-ca-cert=<var>CERT</var></code></p>
> > +    
> > <p><code>--ovn-br-controller-ssl-bootstrap-ca-cert=<var>CERT</var></code></p>
> >
> >       <h1>Protocol, Cipher and Ciphersuite options</h1>
> >       
> > <p><code>--ovn-controller-ssl-protocols=<var>PROTOCOLS</var></code></p>
> > @@ -118,6 +138,11 @@
> >       
> > <p><code>--ovn-sb-db-ssl-ciphersuites=<var>CIPHERSUITES</var></code></p>
> >       
> > <p><code>--ovn-ic-nb-db-ssl-ciphersuites=<var>CIPHERSUITES</var></code></p>
> >       
> > <p><code>--ovn-ic-sb-db-ssl-ciphersuites=<var>CIPHERSUITES</var></code></p>
> > +    
> > <p><code>--ovn-br-controller-ssl-protocols=<var>PROTOCOLS</var></code></p>
> > +    <p><code>--ovn-br-db-ssl-protocols=<var>PROTOCOLS</var></code></p>
> > +    <p><code>--ovn-br-controller-ssl-ciphers=<var>CIPHERS</var></code></p>
> > +    <p><code>--ovn-br-db-ssl-ciphers=<var>CIPHERS</var></code></p>
> > +    
> > <p><code>--ovn-br-db-ssl-ciphersuites=<var>CIPHERSUITES</var></code></p>
> >
> >       <h1>Address and port options</h1>
> >       <p><code>--db-nb-sync-from-addr=<var>IP ADDRESS</var></code></p>
> > @@ -273,6 +298,13 @@
> >         This command will be useful for starting the OVN IC-SB ovsdb-server 
> > in a
> >         container.
> >       </p>
> > +    <p><code># ovn-ctl run_ovnbr_ovsdb</code></p>
> > +    <p>
> > +      This command runs the OVN bridge db ovsdb-server without passing the
> > +      <code>detach</code> option, making it to block until ovsdb-server 
> > exits.
> > +      This command will be useful for starting the OVN br db ovsdb-server 
> > in a
> > +      container.
> > +    </p>
> >
> >       <h1>Example Usage</h1>
> >       <h2>Run ovn-controller on a host already running OVS</h2>
> > @@ -372,4 +404,8 @@
> >           # ovsdb-client convert unix:/var/run/ovn/ovnsb_db.sock 
> > /usr/local/share/ovn/ovn-sb.ovsschema
> >         </code>
> >       </p>
> > +
> > +    <h2>Run OVN bridge controller services on a host already running 
> > OVS</h2>
> > +    <p><code># ovn-ctl start_ovnbr_ovsdb</code></p>
> > +    <p><code># ovn-ctl start_br_controller</code></p>
> >   </manpage>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to