Hi Numan, I have one comment below.

On 8/11/25 6:10 AM, num...@ovn.org wrote:
From: Numan Siddique <num...@ovn.org>

Signed-off-by: Numan Siddique <num...@ovn.org>
---
  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.

+
+    [ "$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
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to