The controller reference described legacy patch-port ownership and only a subset of the Southbound state maintained by current controllers. Align the database overview with current ownership while leaving detailed column semantics in the schema reference.
Assisted-by: GPT-5.6-Luna, OpenCode Signed-off-by: Ales Musil <[email protected]> --- controller/ovn-controller.8.xml | 201 ++++++++++++++++++++++++-------- 1 file changed, 155 insertions(+), 46 deletions(-) diff --git a/controller/ovn-controller.8.xml b/controller/ovn-controller.8.xml index 8b3307050..3c33654ff 100644 --- a/controller/ovn-controller.8.xml +++ b/controller/ovn-controller.8.xml @@ -447,9 +447,24 @@ <dt><code>external_ids:ovn-cleanup-on-exit</code></dt> <dd> - The boolean flag indicates if ovn-controller should perform cleanup on - exit. In order to keep backward compatibility the - <code>--restart</code> exit flag has priority over this flag. + <p> + A boolean value that controls whether <code>ovn-controller</code> + releases this chassis's logical port bindings and removes its + <ref table="Chassis" db="OVN_Southbound"/>, + <ref table="Chassis_Private" db="OVN_Southbound"/>, + <ref table="Encap" db="OVN_Southbound"/>, and + <ref table="IGMP_Group" db="OVN_Southbound"/> rows when it terminates + through the <code>exit</code> runtime command. The default value is + <code>true</code>. + </p> + <p> + If set to <code>false</code>, cleanup is skipped as if + <code>exit --restart</code> had been used. + The <code>--restart</code> argument always skips cleanup, regardless + of this setting. The chassis-specific form, + <code>external_ids:ovn-cleanup-on-exit-[chassis]</code>, is also + supported as described below. + </p> </dd> <dt><code>external_ids:ovn-evpn-vxlan-ports</code></dt> @@ -514,7 +529,7 @@ <dt><code>iface-types</code> from <ref table="Open_vSwitch" db="Open_vSwitch"/> table</dt> <dd> This value is populated in <ref key="iface-types" table="Chassis" - column="external_ids" db="OVN_Southbound"/> of the + column="other_config" db="OVN_Southbound"/> of the <ref table="Chassis" db="OVN_Southbound"/> table in the OVN_Southbound database. </dd> @@ -623,37 +638,37 @@ </dd> <dt> - <code>external-ids:ovn-l3gateway-port</code> in the <code>Port</code> + <code>external_ids:ovn-l3gateway-port</code> in the <code>Port</code> table </dt> <dd> <p> - This key identifies a patch port as one created by - <code>ovn-controller</code> to implement a <code>l3gateway</code> - logical port. Its value is the name of the logical port with type - set to <code>l3gateway</code>. This patch port is similar to - the OVN logical patch port, except that <code>l3gateway</code> - port can only be bound to a particular chassis. + Older versions of <code>ovn-controller</code> used this key on patch + ports. Current versions do not create or use such ports. During + normal operation after the startup delay, they remove obsolete + patch-port pairs discovered through a port with this key on the + integration bridge. </p> </dd> <dt> - <code>external-ids:ovn-logical-patch-port</code> in the + <code>external_ids:ovn-logical-patch-port</code> in the <code>Port</code> table </dt> <dd> <p> - This key identifies a patch port as one created by - <code>ovn-controller</code> to implement an OVN logical patch port - within the integration bridge. Its value is the name of the OVN - logical patch port that it implements. + Older versions of <code>ovn-controller</code> used this key on patch + ports. Current versions do not create or use such ports. During + normal operation after the startup delay, they remove obsolete + patch-port pairs discovered through a port with this key on the + integration bridge. </p> </dd> <dt> - <code>external-ids:ovn-startup-ts</code> in the <code>Bridge</code> + <code>external_ids:ovn-startup-ts</code> in the <code>Bridge</code> table </dt> @@ -665,7 +680,7 @@ </dd> <dt> - <code>external-ids:ovn-nb-cfg</code> in the <code>Bridge</code> table + <code>external_ids:ovn-nb-cfg</code> in the <code>Bridge</code> table </dt> <dd> @@ -677,7 +692,7 @@ </dd> <dt> - <code>external-ids:ovn-nb-cfg-ts</code> in the <code>Bridge</code> + <code>external_ids:ovn-nb-cfg-ts</code> in the <code>Bridge</code> table </dt> @@ -690,7 +705,7 @@ </dd> <dt> - <code>external-ids:ovn-nb-cfg-sb-ts</code> in the <code>Bridge</code> + <code>external_ids:ovn-nb-cfg-sb-ts</code> in the <code>Bridge</code> table </dt> @@ -749,41 +764,135 @@ </p> <dl> - <dt><code>Chassis</code></dt> - <dd> - Upon startup, <code>ovn-controller</code> creates a row in this table - to represent its own chassis. Upon graceful termination, e.g. with - <code>ovn-appctl -t ovn-controller exit</code> (but not - <code>SIGTERM</code>), <code>ovn-controller</code> removes its row. + <dt><ref table="Chassis" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> creates and maintains the row that + represents its chassis. It writes the <ref table="Chassis" + column="name" db="OVN_Southbound"/>, <ref table="Chassis" + column="hostname" db="OVN_Southbound"/>, <ref table="Chassis" + column="encaps" db="OVN_Southbound"/>, <ref table="Chassis" + column="other_config" db="OVN_Southbound"/>, and + <ref table="Chassis" column="transport_zones" + db="OVN_Southbound"/> columns. It removes the row during exit cleanup. </dd> - <dt><code>Encap</code></dt> + <dt><ref table="Chassis_Private" db="OVN_Southbound"/></dt> <dd> - Upon startup, <code>ovn-controller</code> creates a row or rows in this - table that represent the tunnel encapsulations by which its chassis can - be reached, and points its <code>Chassis</code> row to them. Upon - graceful termination, <code>ovn-controller</code> removes these rows. + <code>ovn-controller</code> creates and maintains the private row for + its chassis. It writes the <ref table="Chassis_Private" column="name" + db="OVN_Southbound"/>, <ref table="Chassis_Private" column="chassis" + db="OVN_Southbound"/>, <ref table="Chassis_Private" column="nb_cfg" + db="OVN_Southbound"/>, and <ref table="Chassis_Private" + column="nb_cfg_timestamp" db="OVN_Southbound"/> columns. It removes + the row during exit cleanup. </dd> - <dt><code>Port_Binding</code></dt> + <dt><ref table="Encap" db="OVN_Southbound"/></dt> <dd> - At runtime, <code>ovn-controller</code> sets the <code>chassis</code> - columns of ports that are resident on its chassis to point to its - <code>Chassis</code> row, and, conversely, clears the - <code>chassis</code> column of ports that point to its - <code>Chassis</code> row but are no longer resident on its chassis. - The <code>chassis</code> column has a weak reference type, so when - <code>ovn-controller</code> gracefully exits and removes its - <code>Chassis</code> row, the database server automatically clears any - remaining references to that row. + <code>ovn-controller</code> creates and maintains rows for the tunnel + encapsulations by which its chassis can be reached. It writes the + <ref table="Encap" column="type" db="OVN_Southbound"/>, + <ref table="Encap" column="ip" db="OVN_Southbound"/>, + <ref table="Encap" column="options" db="OVN_Southbound"/>, and + <ref table="Encap" column="chassis_name" db="OVN_Southbound"/> + columns. These non-root rows are removed with their owning + <ref table="Chassis" db="OVN_Southbound"/> row during exit cleanup. + </dd> + + <dt><ref table="Port_Binding" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> claims and releases logical ports by + updating the <ref table="Port_Binding" column="chassis" + db="OVN_Southbound"/> and <ref table="Port_Binding" + column="additional_chassis" db="OVN_Southbound"/> columns. It also + updates the <ref table="Port_Binding" column="up" + db="OVN_Southbound"/>, <ref table="Port_Binding" column="encap" + db="OVN_Southbound"/>, <ref table="Port_Binding" + column="additional_encap" db="OVN_Southbound"/>, + <ref table="Port_Binding" column="virtual_parent" + db="OVN_Southbound"/>, and <ref table="Port_Binding" column="options" + db="OVN_Southbound"/> columns when required by the corresponding port + behavior. Exit cleanup releases bindings owned by this chassis. + </dd> + + <dt><ref table="MAC_Binding" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> creates and updates rows as instructed by + <code>put_arp</code> and <code>put_nd</code> logical actions, while + simulating GARPs on peer router datapaths, and when synchronizing EVPN + neighbors. It also refreshes timestamps for active bindings. It + writes the <ref table="MAC_Binding" column="logical_port" + db="OVN_Southbound"/>, + <ref table="MAC_Binding" column="ip" db="OVN_Southbound"/>, + <ref table="MAC_Binding" column="mac" db="OVN_Southbound"/>, + <ref table="MAC_Binding" column="datapath" db="OVN_Southbound"/>, and + <ref table="MAC_Binding" column="timestamp" db="OVN_Southbound"/> + columns. These changes persist beyond the lifetime of + <code>ovn-controller</code>, except that EVPN-synchronized rows are + removed when their corresponding neighbors become stale. + </dd> + + <dt><ref table="Controller_Event" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> inserts events generated by controller + actions. It writes the <ref table="Controller_Event" + column="event_type" db="OVN_Southbound"/>, + <ref table="Controller_Event" column="event_info" + db="OVN_Southbound"/>, <ref table="Controller_Event" column="chassis" + db="OVN_Southbound"/>, and <ref table="Controller_Event" + column="seq_num" db="OVN_Southbound"/> columns. + </dd> + + <dt><ref table="IGMP_Group" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> creates, updates, and removes rows for + multicast groups learned on its chassis. It writes the + <ref table="IGMP_Group" column="address" db="OVN_Southbound"/>, + <ref table="IGMP_Group" column="protocol" db="OVN_Southbound"/>, + <ref table="IGMP_Group" column="datapath" db="OVN_Southbound"/>, + <ref table="IGMP_Group" column="chassis" db="OVN_Southbound"/>, + <ref table="IGMP_Group" column="ports" db="OVN_Southbound"/>, and + <ref table="IGMP_Group" column="chassis_name" + db="OVN_Southbound"/> columns. It removes rows owned by this chassis + during exit cleanup. + </dd> + + <dt><ref table="Service_Monitor" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> writes the <ref table="Service_Monitor" + column="status" db="OVN_Southbound"/> column with the result of each + service health check. See <code>ovn-sb</code>(5) for the status + values. + </dd> + + <dt><ref table="BFD" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> writes the <ref table="BFD" column="status" + db="OVN_Southbound"/> column as BFD sessions change state. See + <code>ovn-sb</code>(5) for the state values. + </dd> + + <dt><ref table="FDB" db="OVN_Southbound"/></dt> + <dd> + <code>ovn-controller</code> creates and updates forwarding database + entries as instructed by the <code>put_fdb</code> logical action. It + also refreshes timestamps for active entries. It writes the + <ref table="FDB" column="mac" db="OVN_Southbound"/>, + <ref table="FDB" column="dp_key" db="OVN_Southbound"/>, + <ref table="FDB" column="port_key" db="OVN_Southbound"/>, and + <ref table="FDB" column="timestamp" db="OVN_Southbound"/> columns. </dd> - <dt><code>MAC_Binding</code></dt> + <dt><ref table="Learned_Route" db="OVN_Southbound"/></dt> <dd> - At runtime, <code>ovn-controller</code> updates the - <code>MAC_Binding</code> table as instructed by <code>put_arp</code> - and <code>put_nd</code> logical actions. These changes persist beyond - the lifetime of <code>ovn-controller</code>. + When built with Linux Netlink support (<code>HAVE_NETLINK</code>), + <code>ovn-controller</code> synchronizes routes learned from the host + routing table. It creates and removes rows and writes the + <ref table="Learned_Route" column="datapath" db="OVN_Southbound"/>, + <ref table="Learned_Route" column="logical_port" + db="OVN_Southbound"/>, <ref table="Learned_Route" column="ip_prefix" + db="OVN_Southbound"/>, and <ref table="Learned_Route" column="nexthop" + db="OVN_Southbound"/> columns. </dd> </dl> -- 2.55.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
