On 4/21/26 12:14 PM, Mairtin O'Loingsigh via dev wrote:
> Add transit switch port to ovn-ic-nb schema.
>
> Signed-off-by: Mairtin O'Loingsigh <[email protected]>
> ---
Hi Mairtin,
Thanks for the patch!
> ovn-ic-nb.ovsschema | 24 +++++++++++++++++++++++-
> ovn-ic-nb.xml | 42 ++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 65 insertions(+), 1 deletion(-)
>
> diff --git a/ovn-ic-nb.ovsschema b/ovn-ic-nb.ovsschema
> index ca67a2fa9..b8db603b0 100644
> --- a/ovn-ic-nb.ovsschema
> +++ b/ovn-ic-nb.ovsschema
> @@ -1,7 +1,7 @@
> {
> "name": "OVN_IC_Northbound",
> "version": "1.3.0",
We need to bump the y value in the x.y.z version when we add new
tables/columns.
> - "cksum": "1918565391 5082",
> + "cksum": "2501001826 6175",
> "tables": {
> "IC_NB_Global": {
> "columns": {
> @@ -24,9 +24,31 @@
> "min": 0, "max": "unlimited"}}},
> "maxRows": 1,
> "isRoot": true},
> + "Transit_Switch_Port": {
> + "columns": {
> + "name": {"type": "string"},
> + "other_config": {
> + "type": {"key": "string", "value": "string",
> + "min": 0, "max": "unlimited"}},
> + "type": {"type": "string"},
> + "chassis": {"type": "string"},
> + "option": {"type": "string"},
This looks a bit weird, only a single string value option?
> + "addresses": {"type": {"key": "string",
> + "min": 0,
> + "max": "unlimited"}},
> + "ts_uuid": {"type": {"key": {"type": "uuid"},
> + "min": 1,
> + "max": 1}}},
Why do we need this reference back to the transit switch? I guess only
for the helpers in ovn-ic-nbctl but you could do what we do in ovn-nbctl
for logical switch ports, i.e.:
/* Returns the logical switch that contains 'lsp'. */
static char * OVS_WARN_UNUSED_RESULT
lsp_to_ls(struct ctl_context *ctx,
const struct nbrec_logical_switch_port *lsp,
const struct nbrec_logical_switch **ls_p)
{
struct nbctl_context *nbctx = nbctl_context_get(ctx);
const struct nbrec_logical_switch *ls;
*ls_p = NULL;
ls = shash_find_data(&nbctx->lsp_to_ls_map, lsp->name);
if (ls) {
*ls_p = ls;
return NULL;
}
/* Can't happen because of the database schema */
return xasprintf("logical port %s is not part of any logical switch",
lsp->name);
}
> + "isRoot": false,
> + "indexes": [["name"]]},
> "Transit_Switch": {
> "columns": {
> "name": {"type": "string"},
> + "ports": {"type": {"key": {"type": "uuid",
> + "refTable": "Transit_Switch_Port",
> + "refType": "strong"},
> + "min": 0,
> + "max": "unlimited"}},
> "other_config": {
> "type": {"key": "string", "value": "string",
> "min": 0, "max": "unlimited"}},
> diff --git a/ovn-ic-nb.xml b/ovn-ic-nb.xml
> index a3a35baf2..5eaf55332 100644
> --- a/ovn-ic-nb.xml
> +++ b/ovn-ic-nb.xml
> @@ -112,6 +112,10 @@
> </column>
> </group>
>
> + <column name="ports">
> + The router's ports.
Switch ports maybe?
> + </column>
> +
> <group title="Common Columns">
> <column name="other_config"/>
> <column name="external_ids">
> @@ -190,6 +194,44 @@
> </group>
> </table>
>
> + <table name="Transit_Switch_Port" title="Transit logical switch port">
> + <p>
> + Each row represents one transit logical switch port for interconnection
> + between different OVN deployments (availability zones).
> + </p>
> +
> + <group title="Naming">
> + <column name="name">
> + A name that uniquely identifies the transit logical switch port.
> + </column>
> + </group>
> +
> + <column name="type">
> + Specify if the port if of type router or vif.
> + </column>
> +
> + <column name="chassis">
> + The chassis this switch port should be bound to.
> + </column>
> +
> + <column name="option">
> + Contains peer name or network information depending on port type.
I think we should have an explicit peer column. What's the "network
information" that we'd store here otherwise?
> + </column>
> +
> + <column name="addresses">
> + Addresses to assign to port.
> + </column>
> +
> + <column name="ts_uuid">
> + This is the UUID of the northbound IC logical datapath this port is
> + associated with.
> + </column>
> +
> + <group title="Common Columns">
> + <column name="other_config"/>
> + </group>
> + </table>
> +
> <table name="SSL">
> SSL/TLS configuration for ovn-nb database access.
>
Regards,
Dumitru
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev