Add missing commands to the manpage: mirror-rule-add, mirror-rule-del,
lr-nat-update-ext-ip, ha-chassis-group-set-chassis-prio,
lsp-add-router-port, and lsp-add-localnet-port.

Add missing options to the manpage: --add-route for lb-add, --fair and
--may-exist for meter-add, --chain and --output-port for lr-policy-add,
--chain for lr-policy-del, and ADDRESS_FAMILY argument for lb-add.

Fix errors in the manpage: remove erroneous --route-table from
lr-policy-add, add optional argument to nfg-list, update lr-policy-add
action list to include jump.

Update nbctl_usage() to list all available options for every command,
matching the command table. Fix the mirror-rule-del signature, the
dhcp-options-get-options typo, and various formatting issues.

Assisted-by: Claude Code (Claude Opus 4.6)
Signed-off-by: Mark Michelson <[email protected]>
---
 NEWS                      |   6 ++
 utilities/ovn-nbctl.8.xml | 174 ++++++++++++++++++++++++++++++----
 utilities/ovn-nbctl.c     | 191 ++++++++++++++++++++++----------------
 3 files changed, 270 insertions(+), 101 deletions(-)

diff --git a/NEWS b/NEWS
index 8633ba8bb..04f24a5ca 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,11 @@
 Post v26.03.0
 -------------
+   - Documented missing ovn-nbctl commands: "mirror-rule-add",
+     "mirror-rule-del", "lr-nat-update-ext-ip",
+     "ha-chassis-group-set-chassis-prio", "lsp-add-router-port",
+     and "lsp-add-localnet-port".  Also documented missing options for
+     "lb-add", "meter-add", "lr-policy-add", and "lr-policy-del", and
+     fixed the "nfg-list" signature.
    - Dynamic Routing:
      * Add support for hub-and-spoke propagation via the "hub-spoke" option
        in dynamic-routing-redistribute settings.
diff --git a/utilities/ovn-nbctl.8.xml b/utilities/ovn-nbctl.8.xml
index 4fbd0bb0e..aaff29ec0 100644
--- a/utilities/ovn-nbctl.8.xml
+++ b/utilities/ovn-nbctl.8.xml
@@ -545,10 +545,12 @@
       </p>
       </dd>
 
-      <dt><code>nfg-list</code></dt>
+      <dt><code>nfg-list</code> [<var>nfg</var>]</dt>
       <dd>
         <p>
-          Lists all network function groups.
+          Lists all network function groups.  If a specific network
+          function group <var>nfg</var> is given, only that group is
+          listed.
         </p>
       </dd>
 
@@ -634,7 +636,7 @@
 
     <h2>Meter Commands</h2>
     <dl>
-        <dt><code>meter-add</code> <var>name</var> <var>action</var> 
<var>rate</var> <var>unit</var> [<var>burst</var>]</dt>
+        <dt>[<code>--fair</code>] [<code>--may-exist</code>] 
<code>meter-add</code> <var>name</var> <var>action</var> <var>rate</var> 
<var>unit</var> [<var>burst</var>]</dt>
       <dd>
         <p>
           Adds the specified meter.  <var>name</var> must be a unique
@@ -666,6 +668,18 @@
           internal use by OVN, so <code>ovn-nbctl</code> does not allow
           adding them.
         </p>
+
+        <p>
+          If <code>--fair</code> is specified, the meter's
+          <code>fair</code> column is set to <code>true</code>, enabling
+          fair bandwidth sharing among rows that reference this meter.
+        </p>
+
+        <p>
+          If <code>--may-exist</code> is specified, adding a meter with
+          a name that already exists will update the existing meter
+          instead of reporting an error.
+        </p>
       </dd>
 
       <dt><code>meter-del</code> [<var>name</var>]</dt>
@@ -974,6 +988,40 @@
       <dd>
         Detaches the mirror <var>m</var> from the logical port <var>port</var>.
       </dd>
+
+      <dt>[<code>--may-exist</code>] <code>lsp-add-router-port</code>
+          <var>switch</var> <var>port</var> <var>lrp_peer</var></dt>
+      <dd>
+        <p>
+          Creates a new logical switch port named <var>port</var> on
+          <var>switch</var> with type <code>router</code>, sets the
+          <code>router-port</code> option to <var>lrp_peer</var>, and
+          sets addresses to <code>router</code>.
+        </p>
+
+        <p>
+          With <code>--may-exist</code>, it is not an error if the port
+          already exists, as long as it is in the same switch, has the
+          same type, and has the same <code>router-port</code> option.
+        </p>
+      </dd>
+
+      <dt>[<code>--may-exist</code>] <code>lsp-add-localnet-port</code>
+          <var>switch</var> <var>port</var> <var>network</var></dt>
+      <dd>
+        <p>
+          Creates a new logical switch port named <var>port</var> on
+          <var>switch</var> with type <code>localnet</code>, sets the
+          <code>network_name</code> option to <var>network</var>, and
+          sets addresses to <code>unknown</code>.
+        </p>
+
+        <p>
+          With <code>--may-exist</code>, it is not an error if the port
+          already exists, as long as it is in the same switch, has the
+          same type, and has the same <code>network_name</code> option.
+        </p>
+      </dd>
     </dl>
 
     <h2>Forwarding Group Commands</h2>
@@ -1254,7 +1302,8 @@
 
     <dl>
       <dt>[<code>--may-exist</code>] [<code>--bfd</code>]
-          [<code>--route-table</code>=<var>ROUTE_TABLE</var>]
+          [<code>--chain</code>=<var>CHAIN</var>]
+          [<code>--output-port</code>=<var>OUTPUT_PORT</var>]
           <code>lr-policy-add</code>
           <var>router</var> <var>priority</var> <var>match</var>
           <var>action</var> [<var>nexthop</var>[,<var>nexthop</var>,...]]
@@ -1262,16 +1311,18 @@
       <dd>
         <p>
           Add Policy to <var>router</var> which provides a way to configure
-          permit/deny and reroute policies on the router. Permit/deny policies
-          are similar to OVN ACLs, but exist on the logical-router. Reroute
-          policies are needed for service-insertion and service-chaining.
-          <var>nexthop</var> is an optional parameter. It needs to be provided
-          only when <var>action</var> is <var>reroute</var>. Multiple
-          <code>nexthops</code> can be specified for ECMP routing.
-          A policy is uniquely identified by <var>priority</var> and
-          <var>match</var>. Multiple policies can have the same
-          <var>priority</var>. <var>options</var> sets the router policy
-          options as key-value pair.
+          allow, drop, jump, and reroute policies on the router.  Allow and
+          drop policies are similar to OVN ACLs, but exist on the
+          logical-router.  Reroute policies are needed for service-insertion
+          and service-chaining.  The <var>action</var> must be one of
+          <code>allow</code>, <code>drop</code>, <code>jump</code>, or
+          <code>reroute</code>.  <var>nexthop</var> is an optional
+          parameter.  It needs to be provided only when <var>action</var>
+          is <code>reroute</code>.  Multiple <code>nexthops</code> can be
+          specified for ECMP routing.  A policy is uniquely identified by
+          <var>priority</var> and <var>match</var>.  Multiple policies can
+          have the same <var>priority</var>.  <var>options</var> sets the
+          router policy options as key-value pair.
           The supported option is : <code>pkt_mark</code>.
         </p>
 
@@ -1283,9 +1334,14 @@
         </p>
 
         <p>
-          The <code>--route-table</code> option can be used to list the
-          routes assigned to route table <var>ROUTE_TABLE</var> instead of
-          the default <code>&lt;main&gt;</code> table.
+          The <code>--chain</code> option specifies the policy chain name.
+          This is used when the <var>action</var> is <code>jump</code>.
+        </p>
+
+        <p>
+          The <code>--output-port</code> option specifies the output
+          logical router port.  This is only valid when the
+          <var>action</var> is <code>reroute</code>.
         </p>
 
         <p>
@@ -1313,7 +1369,9 @@
           </p>
       </dd>
 
-      <dt>[<code>--if-exists</code>] <code>lr-policy-del</code>
+      <dt>[<code>--if-exists</code>]
+          [<code>--chain</code>=<var>CHAIN</var>]
+          <code>lr-policy-del</code>
           <var>router</var> [<var>{priority | uuid} [match]</var>]</dt>
       <dd>
         <p>
@@ -1330,6 +1388,11 @@
           <var>uuid</var> does not exist, unless <code>--if-exists</code>
           is specified.
         </p>
+
+        <p>
+          If <code>--chain</code> is specified, only policies in the
+          specified chain are considered for deletion.
+        </p>
       </dd>
 
       <dt><code>lr-policy-list</code> <var>router</var></dt>
@@ -1474,11 +1537,36 @@
       <dd>
         Lists the NATs on <var>router</var>.
       </dd>
+
+      <dt>[<code>--is-exempted</code>] <code>lr-nat-update-ext-ip</code>
+          <var>router</var> <var>type</var> <var>ip</var>
+          <var>address_set</var></dt>
+      <dd>
+        <p>
+          Updates the external IP address set for an existing NAT rule on
+          <var>router</var>.  <var>type</var> must be one of
+          <code>dnat</code>, <code>snat</code>, or
+          <code>dnat_and_snat</code>.  The command finds the matching
+          NAT rule by <var>type</var> and <var>ip</var>, then sets the
+          <code>allowed_ext_ips</code> column of the NAT rule to
+          <var>address_set</var>.
+        </p>
+
+        <p>
+          If <code>--is-exempted</code> is specified, sets
+          <code>exempted_ext_ips</code> instead of
+          <code>allowed_ext_ips</code>.
+        </p>
+
+        <p>
+          It is an error if no matching NAT rule is found.
+        </p>
+      </dd>
     </dl>
 
     <h2>Load Balancer Commands</h2>
     <dl>
-        <dt>[<code>--may-exist</code> | <code>--add-duplicate</code> | 
<code>--reject</code> | <code>--event</code> | <code>--template</code>] 
<code>lb-add</code> <var>lb</var> <var>vip</var> <var>ips</var> 
[<var>protocol</var>]</dt>
+        <dt>[<code>--may-exist</code> | <code>--add-duplicate</code> | 
<code>--reject</code> | <code>--event</code> | <code>--template</code> | 
<code>--add-route</code>] <code>lb-add</code> <var>lb</var> <var>vip</var> 
<var>ips</var> [<var>protocol</var>] [<var>address_family</var>]</dt>
       <dd>
         <p>
          Creates a new load balancer named <var>lb</var> with the provided
@@ -1537,6 +1625,17 @@
          ^vip:^vport ^backend udp ipv4</code>.
         </p>
 
+        <p>
+         If <code>--add-route</code> is specified, a route is automatically
+         added for the load balancer's VIP subnet.
+        </p>
+
+        <p>
+         The optional <var>address_family</var> argument specifies the
+         address family (<code>ipv4</code> or <code>ipv6</code>).  This
+         is primarily used with template load balancers.
+        </p>
+
         <p>
          The following example adds a load balancer.
         </p>
@@ -1708,6 +1807,18 @@
         group <code>group</code>. It is an error if <code>chassis</code> does
         not exist.
       </dd>
+
+      <dt><code>ha-chassis-group-set-chassis-prio</code> <var>group</var>
+      <var>chassis</var> <var>priority</var></dt>
+      <dd>
+        <p>
+          Sets the priority of an existing HA chassis <var>chassis</var>
+          within the HA chassis group <var>group</var>.
+          <var>priority</var> must be between <code>0</code> and
+          <code>32767</code>, inclusive.  It is an error if
+          <var>chassis</var> does not exist in <var>group</var>.
+        </p>
+      </dd>
     </dl>
 
     <h2> Control Plane Protection Policy commands</h2>
@@ -1821,6 +1932,31 @@
       <dd>
         Lists the mirrors.
       </dd>
+
+      <dt><code>mirror-rule-add</code> <var>mirror_name</var>
+      <var>priority</var> <var>match</var> <var>action</var></dt>
+      <dd>
+        <p>
+          Adds a mirror rule to the mirror named <var>mirror_name</var>.
+          <var>priority</var> is an integer between <code>0</code> and
+          <code>32767</code>, inclusive.  <var>match</var> is a match
+          expression for selecting traffic.  <var>action</var> must be
+          <code>mirror</code> or <code>skip</code>.  It is an error if
+          a duplicate rule already exists on the mirror.
+        </p>
+      </dd>
+
+      <dt><code>mirror-rule-del</code> <var>mirror_name</var>
+      [<var>priority</var> <var>match</var>]</dt>
+      <dd>
+        <p>
+          Deletes mirror rules from the mirror named
+          <var>mirror_name</var>.  If only <var>mirror_name</var> is
+          given, all mirror rules are deleted from that mirror.  If
+          <var>priority</var> and <var>match</var> are also given, only
+          the rule matching both is deleted.
+        </p>
+      </dd>
     </dl>
 
     <h2>Health Check commands</h2>
diff --git a/utilities/ovn-nbctl.c b/utilities/ovn-nbctl.c
index 0ef207272..9f6bb374b 100644
--- a/utilities/ovn-nbctl.c
+++ b/utilities/ovn-nbctl.c
@@ -289,64 +289,62 @@ General commands:\n\
   show ROUTER               print overview of database contents for ROUTER\n\
 \n\
 Logical switch commands:\n\
+  [--may-exist | --add-duplicate]\n\
   ls-add [SWITCH]           create a logical switch named SWITCH\n\
+  [--if-exists]\n\
   ls-del SWITCH             delete SWITCH and all its ports\n\
   ls-list                   print the names of all logical switches\n\
 \n\
 ACL commands:\n\
-  [--type={switch | port-group}] [--log] [--severity=SEVERITY] [--name=NAME] 
[--may-exist]\n\
-  acl-add {SWITCH | PORTGROUP} DIRECTION PRIORITY MATCH ACTION 
[NETWORK-FUNCTION-GROUP]\n\
+  [--type={switch | port-group}] [--log] [--severity=SEVERITY]\n\
+  [--name=NAME] [--meter=METER] [--label=LABEL] [--may-exist]\n\
+  [--apply-after-lb] [--tier=TIER]\n\
+  [--sample-new=COLLECTOR_SET_ID] [--sample-est=COLLECTOR_SET_ID]\n\
+  acl-add {SWITCH | PORTGROUP} DIRECTION PRIORITY MATCH ACTION\n\
+          [NETWORK-FUNCTION-GROUP]\n\
                             add an ACL to SWITCH/PORTGROUP\n\
-  [--type={switch | port-group}]\n\
+  [--type={switch | port-group}] [--tier=TIER]\n\
   acl-del {SWITCH | PORTGROUP} [DIRECTION [PRIORITY MATCH]]\n\
                             remove ACLs from SWITCH/PORTGROUP\n\
-  [--type={switch | port-group}]\n\
+  [--type={switch | port-group}] [--all]\n\
   acl-list {SWITCH | PORTGROUP}\n\
-                            print ACLs for SWITCH\n\
+                            print ACLs for SWITCH/PORTGROUP\n\
 \n\
 QoS commands:\n\
-  qos-add SWITCH DIRECTION PRIORITY MATCH [rate=RATE [burst=BURST]] 
[dscp=DSCP] [mark=MARK]\n\
-                            add an QoS rule to SWITCH\n\
+  [--may-exist]\n\
+  qos-add SWITCH DIRECTION PRIORITY MATCH [rate=RATE [burst=BURST]]\n\
+          [dscp=DSCP] [mark=MARK]\n\
+                            add a QoS rule to SWITCH\n\
   qos-del SWITCH [{DIRECTION | UUID} [PRIORITY MATCH]]\n\
                             remove QoS rules from SWITCH\n\
   qos-list SWITCH           print QoS rules for SWITCH\n\
 \n\
 Mirror commands:\n\
-  mirror-add NAME TYPE [INDEX] FILTER {IP | MIRROR-ID| TARGET-PORT} \n\
+  [--may-exist]\n\
+  mirror-add NAME TYPE [INDEX] FILTER DEST\n\
                             add a mirror with given name\n\
-                            specify TYPE 'gre', 'erspan', 'local'\n\
-                                or 'lport'.\n\
-                            specify the tunnel INDEX value\n\
-                                (indicates key if GRE\n\
-                                 erpsan_idx if ERSPAN)\n\
-                            specify FILTER for mirroring selection\n\
-                                'to-lport' / 'from-lport' / 'both'\n\
-                            specify Sink / Destination i.e. Remote IP, or a\n\
-                                local interface with external-ids:mirror-id\n\
-                                matching MIRROR-ID\n\
-                                In case of lport type specify logical switch\n\
-                                port, which is a mirror target.\n\
   mirror-del [NAME]         remove mirrors\n\
   mirror-list               print mirrors\n\
-  mirror-rule-add MIRROR-NAME PRIORITY MATCH ACTION \n\
-                            add a mirror rule selection to given lport\n\
-                            mirror.\n\
-                            specify MATCH for selecting mirrored traffic.\n\
-                            specify ACTION 'mirror' or 'skip'.\n\
-  mirror-rule-del MIRROR-NAME [PRIORITY | MATCH] remove mirrors\n\
+  mirror-rule-add MIRROR-NAME PRIORITY MATCH ACTION\n\
+                            add a mirror rule to given mirror\n\
+                            ACTION must be 'mirror' or 'skip'\n\
+  mirror-rule-del MIRROR-NAME [PRIORITY MATCH]\n\
+                            remove mirror rules from a mirror\n\
 \n\
 Meter commands:\n\
-  [--fair]\n\
+  [--fair] [--may-exist]\n\
   meter-add NAME ACTION RATE UNIT [BURST]\n\
                             add a meter\n\
   meter-del [NAME]          remove meters\n\
   meter-list                print meters\n\
 \n\
 Logical switch port commands:\n\
+  [--may-exist]\n\
   lsp-add SWITCH PORT       add logical port PORT on SWITCH\n\
   lsp-add SWITCH PORT PARENT TAG\n\
                             add logical port PORT on SWITCH with PARENT\n\
                             on TAG\n\
+  [--if-exists]\n\
   lsp-del PORT              delete PORT from its attached switch\n\
   lsp-list SWITCH           print the names of all logical ports on SWITCH\n\
   lsp-get-parent PORT       get the parent of PORT if set\n\
@@ -363,7 +361,8 @@ Logical switch port commands:\n\
                             ('enabled' or 'disabled')\n\
   lsp-get-enabled PORT      get administrative state PORT\n\
                             ('enabled' or 'disabled')\n\
-  lsp-set-type PORT TYPE    set the type for PORT\n\
+  lsp-set-type PORT TYPE [peer=PEER]\n\
+                            set the type for PORT\n\
   lsp-get-type PORT         get the type for PORT\n\
   lsp-set-options PORT KEY=VALUE [KEY=VALUE]...\n\
                             set options related to the type of PORT\n\
@@ -375,50 +374,65 @@ Logical switch port commands:\n\
                             set dhcpv6 options for PORT\n\
   lsp-get-dhcpv6-options PORT  get the dhcpv6 options for PORT\n\
   lsp-get-ls PORT           get the logical switch which the port belongs to\n\
+  [--may-exist]\n\
   lsp-attach-mirror PORT MIRROR   attach source PORT to MIRROR\n\
   lsp-detach-mirror PORT MIRROR   detach source PORT from MIRROR\n\
-  lsp-add-router-port LS PORT LRP_PEER\n\
-                                    Create LSP of type router with\n\
-                                    router-port set to LRP_PEER\n\
-  lsp-add-localnet-port LS PORT NETWORK\n\
-                                    Create LSP of type localnet with\n\
-                                    network_name set to NETWORK\n\
+  [--may-exist]\n\
+  lsp-add-router-port SWITCH PORT LRP_PEER\n\
+                            create LSP of type router with\n\
+                            router-port set to LRP_PEER\n\
+  [--may-exist]\n\
+  lsp-add-localnet-port SWITCH PORT NETWORK\n\
+                            create LSP of type localnet with\n\
+                            network_name set to NETWORK\n\
 \n\
 Forwarding group commands:\n\
   [--liveness]\n\
   fwd-group-add GROUP SWITCH VIP VMAC PORTS...\n\
                             add a forwarding group on SWITCH\n\
+  [--if-exists]\n\
   fwd-group-del GROUP       delete a forwarding group\n\
-  fwd-group-list [SWITCH]   print forwarding groups\n\
+  fwd-group-list [GROUP]    print forwarding groups\n\
 \n\
 Network function group commands:\n\
+  [--may-exist]\n\
   nfg-add NETWORK-FUNCTION-GROUP ID MODE [NETWORK-FUNCTION]...\n\
                             create a network-function-group\n\
+  [--if-exists]\n\
   nfg-del NETWORK-FUNCTION-GROUP\n\
                             delete a network-function-group\n\
-  nfg-list print all network-function-groups\n\
+  nfg-list [NETWORK-FUNCTION-GROUP]\n\
+                            print network-function-groups\n\
+  [--may-exist]\n\
   nfg-add-nf NETWORK-FUNCTION-GROUP NETWORK-FUNCTION\n\
                             add a network-function to a\n\
                             network-function-group\n\
+  [--if-exists]\n\
   nfg-del-nf NETWORK-FUNCTION-GROUP NETWORK-FUNCTION\n\
                             delete a network-function from a\n\
                             network-function-group\n\
 \n\
 Network function commands:\n\
+  [--may-exist]\n\
   nf-add NETWORK-FUNCTION ID PORT-IN PORT-OUT\n\
                            create a network-function\n\
+  [--if-exists]\n\
   nf-del NETWORK-FUNCTION  delete a network-function\n\
   nf-list                  print all network-functions\n\
 \n\n",program_name, program_name);
     printf("\
 Logical router commands:\n\
+  [--may-exist | --add-duplicate]\n\
   lr-add [ROUTER]           create a logical router named ROUTER\n\
+  [--if-exists]\n\
   lr-del ROUTER             delete ROUTER and all its ports\n\
   lr-list                   print the names of all logical routers\n\
 \n\
 Logical router port commands:\n\
-  lrp-add ROUTER PORT MAC [NETWORK]... [peer=PEER]\n\
+  [--may-exist]\n\
+  lrp-add ROUTER PORT MAC [NETWORK]... [COLUMN[:KEY]=VALUE]...\n\
                             add logical port PORT on ROUTER\n\
+  [--may-exist]\n\
   lrp-set-gateway-chassis PORT CHASSIS [PRIORITY]\n\
                             set gateway chassis for port PORT\n\
   lrp-set-options PORT KEY=VALUE [KEY=VALUE]...\n\
@@ -428,6 +442,7 @@ Logical router port commands:\n\
   lrp-get-gateway-chassis PORT\n\
                             print the names of all gateway chassis on PORT\n\
                             with PRIORITY\n\
+  [--if-exists]\n\
   lrp-del PORT              delete PORT from its attached router\n\
   lrp-list ROUTER           print the names of all ports on ROUTER\n\
   lrp-set-enabled PORT STATE\n\
@@ -445,53 +460,59 @@ Logical router port commands:\n\
                             ('overlay' or 'bridged')\n\
 \n\
 Route commands:\n\
-  [--policy=POLICY]\n\
-  [--ecmp]\n\
-  [--ecmp-symmetric-reply]\n\
-  [--route-table=ROUTE_TABLE]\n\
-  [--bfd]\n\
+  [--may-exist] [--policy=POLICY] [--ecmp] [--ecmp-symmetric-reply]\n\
+  [--route-table=ROUTE_TABLE] [--bfd]\n\
   lr-route-add ROUTER PREFIX NEXTHOP [PORT]\n\
                             add a route to ROUTER\n\
-  [--policy=POLICY]\n\
-  [--route-table=ROUTE_TABLE]\n\
+  [--if-exists] [--policy=POLICY] [--route-table=ROUTE_TABLE]\n\
   lr-route-del ROUTER [PREFIX [NEXTHOP [PORT]]]\n\
                             remove routes from ROUTER\n\
   [--route-table=ROUTE_TABLE]\n\
   lr-route-list ROUTER      print routes for ROUTER\n\
 \n\
 Policy commands:\n\
-  [--bfd]\n\
-  lr-policy-add ROUTER PRIORITY MATCH ACTION [NEXTHOP,[NEXTHOP,...]] \
-[OPTIONS KEY=VALUE ...] \n\
-                            add a policy to router\n\
+  [--may-exist] [--bfd] [--chain=CHAIN] [--output-port=OUTPUT_PORT]\n\
+  lr-policy-add ROUTER PRIORITY MATCH ACTION [NEXTHOP,[NEXTHOP,...]]\n\
+                [OPTIONS KEY=VALUE ...]\n\
+                            add a policy to ROUTER\n\
+  [--if-exists] [--chain=CHAIN]\n\
   lr-policy-del ROUTER [{PRIORITY | UUID} [MATCH]]\n\
                             remove policies from ROUTER\n\
   lr-policy-list ROUTER     print policies for ROUTER\n\
 \n\n");
     printf("\
 NAT commands:\n\
-  [--stateless]\n\
-  [--portrange]\n\
-  [--add-route]\n\
-  [--gateway-port=GATEWAY_PORT]\n\
-  lr-nat-add ROUTER TYPE EXTERNAL_IP LOGICAL_IP [LOGICAL_PORT EXTERNAL_MAC]\n\
-                            [EXTERNAL_PORT_RANGE]\n\
+  [--may-exist] [--stateless] [--portrange] [--add-route]\n\
+  [--gateway-port=GATEWAY_PORT] [--priority=PRIORITY] [--match=MATCH]\n\
+  lr-nat-add ROUTER TYPE EXTERNAL_IP LOGICAL_IP\n\
+             [LOGICAL_PORT EXTERNAL_MAC] [EXTERNAL_PORT_RANGE]\n\
                             add a NAT to ROUTER\n\
+  [--if-exists] [--match=MATCH]\n\
   lr-nat-del ROUTER [TYPE [IP] [GATEWAY_PORT]]\n\
                             remove NATs from ROUTER\n\
   lr-nat-list ROUTER        print NATs for ROUTER\n\
+  [--is-exempted]\n\
+  lr-nat-update-ext-ip ROUTER TYPE IP ADDRESS_SET\n\
+                            update external IP address set for a NAT rule\n\
 \n\
 LB commands:\n\
-  lb-add LB VIP[:PORT] IP[:PORT]... [PROTOCOL]\n\
+  [--may-exist | --add-duplicate] [--reject] [--event] [--template]\n\
+  [--add-route]\n\
+  lb-add LB VIP[:PORT] IP[:PORT]... [PROTOCOL] [ADDRESS_FAMILY]\n\
                             create a load-balancer or add a VIP to an\n\
                             existing load balancer\n\
+  [--if-exists]\n\
   lb-del LB [VIP]           remove a load-balancer or just the VIP from\n\
                             the load balancer\n\
   lb-list [LB]              print load-balancers\n\
+  [--may-exist]\n\
   lr-lb-add ROUTER LB       add a load-balancer to ROUTER\n\
+  [--if-exists]\n\
   lr-lb-del ROUTER [LB]     remove load-balancers from ROUTER\n\
   lr-lb-list ROUTER         print load-balancers\n\
+  [--may-exist]\n\
   ls-lb-add SWITCH LB       add a load-balancer to SWITCH\n\
+  [--if-exists]\n\
   ls-lb-del SWITCH [LB]     remove load-balancers from SWITCH\n\
   ls-lb-list SWITCH         print load-balancers\n\
 \n\
@@ -500,11 +521,10 @@ DHCP Options commands:\n\
                            create a DHCP options row with CIDR\n\
   dhcp-options-del DHCP_OPTIONS_UUID\n\
                            delete DHCP_OPTIONS_UUID\n\
-  dhcp-options-list        \n\
-                           lists the DHCP_Options rows\n\
-  dhcp-options-set-options DHCP_OPTIONS_UUID  KEY=VALUE [KEY=VALUE]...\n\
+  dhcp-options-list        lists the DHCP_Options rows\n\
+  dhcp-options-set-options DHCP_OPTIONS_UUID KEY=VALUE [KEY=VALUE]...\n\
                            set DHCP options for DHCP_OPTIONS_UUID\n\
-  dhcp-options-get-options DHCO_OPTIONS_UUID \n\
+  dhcp-options-get-options DHCP_OPTIONS_UUID\n\
                            displays the DHCP options for DHCP_OPTIONS_UUID\n\
 \n\
 Connection commands:\n\
@@ -516,50 +536,57 @@ Connection commands:\n\
 SSL/TLS commands:\n\
   get-ssl                     print the SSL/TLS configuration\n\
   del-ssl                     delete the SSL/TLS configuration\n\
-  set-ssl PRIV-KEY CERT CA-CERT [SSL-PROTOS [SSL-CIPHERS [SSL-CIPHERSUITES]]] \
-set the SSL/TLS configuration\n\
+  [--bootstrap]\n\
+  set-ssl PRIV-KEY CERT CA-CERT [SSL-PROTOS [SSL-CIPHERS 
[SSL-CIPHERSUITES]]]\n\
+                              set the SSL/TLS configuration\n\
+\n\
 Port group commands:\n\
-  pg-add PG [PORTS]           Create port group PG with optional PORTS\n\
-  pg-set-ports PG PORTS       Set PORTS on port group PG\n\
-  pg-del PG                   Delete port group PG\n\
-  pg-get-ports PG             Get PORTS on port group PG\n\
+  pg-add PG [PORTS]           create port group PG with optional PORTS\n\
+  pg-set-ports PG PORTS       set PORTS on port group PG\n\
+  pg-del PG                   delete port group PG\n\
+  pg-get-ports PG             get PORTS on port group PG\n\
+\n\
 HA chassis group commands:\n\
-  ha-chassis-group-add GRP    Create an HA chassis group GRP\n\
-  ha-chassis-group-del GRP    Delete the HA chassis group GRP\n\
-  ha-chassis-group-list [GRP] Print the supplied HA chassis group or all\n\
+  ha-chassis-group-add GRP    create an HA chassis group GRP\n\
+  ha-chassis-group-del GRP    delete the HA chassis group GRP\n\
+  ha-chassis-group-list [GRP] print the supplied HA chassis group or all\n\
                               if none supplied\n\
-  ha-chassis-group-add-chassis GRP CHASSIS PRIORITY Adds an HA\
-chassis with mandatory PRIORITY to the HA chassis group GRP\n\
-  ha-chassis-group-remove-chassis GRP CHASSIS Removes the HA chassis\
-CHASSIS from the HA chassis group GRP\n\
+  ha-chassis-group-add-chassis GRP CHASSIS PRIORITY\n\
+                              add an HA chassis with PRIORITY to GRP\n\
+  ha-chassis-group-remove-chassis GRP CHASSIS\n\
+                              remove the HA chassis CHASSIS from GRP\n\
+  ha-chassis-group-set-chassis-prio GRP CHASSIS PRIORITY\n\
+                              set PRIORITY of CHASSIS in GRP\n\
 \n\
 Control Plane Protection Policy commands:\n\
   copp-add NAME PROTO METER\n\
-                            Add a copp policy for PROTO packets on NAME\n\
+                            add a copp policy for PROTO packets on NAME\n\
                             CoPP policy based on an existing METER.\n\
   copp-del NAME [PROTO]\n\
-                            Delete the copp policy for PROTO packets for\n\
+                            delete the copp policy for PROTO packets for\n\
                             NAME copp. If PROTO is not specified, delete all\n\
                             copp policies defined for NAME.\n\
   copp-list NAME\n\
-                            List all copp policies defined for control\n\
+                            list all copp policies defined for control\n\
                             protocols NAME.\n\
   ls-copp-add NAME SWITCH\n\
-                            Add a NAME copp policy on SWITCH logical switch.\n\
+                            add a NAME copp policy on SWITCH logical switch.\n\
   lr-copp-add NAME ROUTER\n\
-                            Add a NAME copp policy on ROUTER logical router.\n\
+                            add a NAME copp policy on ROUTER logical router.\n\
 \n\
 MAC_Binding commands:\n\
+  [--may-exist]\n\
   static-mac-binding-add LOGICAL_PORT IP MAC\n\
-                                    Add a Static_MAC_Binding entry\n\
+                                    add a Static_MAC_Binding entry\n\
+  [--if-exists]\n\
   static-mac-binding-del LOGICAL_PORT IP\n\
-                                    Delete Static_MAC_Binding entry\n\
-  static-mac-binding-list           List all Static_MAC_Binding entries\n\
+                                    delete Static_MAC_Binding entry\n\
+  static-mac-binding-list           list all Static_MAC_Binding entries\n\
 \n\
 Logical Switch Port Health Check:\n\
-  lsp-hc-add PORT PROTOCOL SOURCE_IP DST_PORT ADDRESS...\n\
+  lsp-hc-add PORT PROTOCOL SOURCE_IP [DST_PORT] ADDRESS\n\
                             add health check monitoring for PORT\n\
-  lsp-hc-del PORT HC_UUID   delete health check monitoring for PORT\n\
+  lsp-hc-del PORT [HC_UUID] delete health check monitoring for PORT\n\
   lsp-hc-list PORT          list health checks for PORT\n\
 \n\
 %s\
-- 
2.52.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to