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

Reply via email to