On 4/23/26 3:25 PM, Dumitru Ceara wrote:
> 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 ++++++++++++++++++++++++++++++++++++++++++
I forgot one thing, we're missing a NEWS item for this series, in one of
the patches.
>> 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