On 12/3/24 3:58 PM, Felix Huettner via dev wrote:
> The Route table will be used in the future to coordinate routing
> information between northd and ovn-controller.
> Northd will insert routes that should be advertised to the outside
> fabric.
> Ovn-controller will insert routes that have been learned from the
> outside fabric.
> 
> Signed-off-by: Felix Huettner <[email protected]>
> ---

Hi Felix,

I have a few minor comments, otherwise, this looks ok to me.

>  ovn-sb.ovsschema | 29 ++++++++++++++++--
>  ovn-sb.xml       | 80 ++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 107 insertions(+), 2 deletions(-)
> 
> diff --git a/ovn-sb.ovsschema b/ovn-sb.ovsschema
> index 73abf2c8d..76d32197d 100644
> --- a/ovn-sb.ovsschema
> +++ b/ovn-sb.ovsschema
> @@ -1,7 +1,7 @@
>  {
>      "name": "OVN_Southbound",
> -    "version": "20.37.0",
> -    "cksum": "1950136776 31493",
> +    "version": "20.38.0",
> +    "cksum": "550338719 32889",
>      "tables": {
>          "SB_Global": {
>              "columns": {
> @@ -617,6 +617,31 @@
>                      "type": {"key": "string", "value": "string",
>                               "min": 0, "max": "unlimited"}}},
>              "indexes": [["chassis"]],
> +            "isRoot": true},
> +        "Route": {
> +            "columns": {
> +                "datapath":
> +                    {"type": {"key": {"type": "uuid",
> +                                      "refTable": "Datapath_Binding"}}},
> +                "logical_port": {"type": {"key": {"type": "uuid",
> +                                                  "refTable": "Port_Binding",
> +                                                  "refType": "weak"}}},

It's probably fine to keep this as a strong reference, right?

> +                "ip_prefix": {"type": "string"},
> +                "nexthop": {"type": "string"},
> +                "tracked_port": {"type": {"key": {"type": "uuid",
> +                                                  "refTable": "Port_Binding",
> +                                                  "refType": "weak"},

Same here, I guess.

> +                                          "min": 0,
> +                                          "max": 1}},
> +                "type": {"type": {"key": {"type": "string",
> +                                          "enum": ["set", ["advertise",
> +                                                           "receive"]]},
> +                                    "min": 1, "max": 1}},
> +                "external_ids": {
> +                    "type": {"key": "string", "value": "string",
> +                             "min": 0, "max": "unlimited"}}},
> +            "indexes": [["datapath", "logical_port", "ip_prefix", "nexthop",
> +                         "type"]],
>              "isRoot": true}

Do we really need this table to be root?

>      }
>  }
> diff --git a/ovn-sb.xml b/ovn-sb.xml
> index ea4adc1c3..fa9e7b4ba 100644
> --- a/ovn-sb.xml
> +++ b/ovn-sb.xml
> @@ -5217,4 +5217,84 @@ tcp.flags = RST;
>        The set of variable values for a given chassis.
>      </column>
>    </table>
> +
> +  <table name="Route">
> +    <p>
> +      Each record represents a route thas is export from ovn or imported to 
> ovn

Typo: thas
Maybe: s/export/exported/

> +      using some dynamic routing logic outside of ovn.
> +      It is populated on the one hand by <code>ovn-northd</code> based on the
> +      addresses, routes and NAT Entries of a
> +      <code>OVN_Northbound.Logical_Router_Port</code>.
> +      On the other hand <code>ovn-controller</code> populates it with routes
> +      learned from outside of OVN.
> +    </p>
> +
> +    <column name="datapath">
> +      The datapath belonging to the
> +      <code>OVN_Northbound.Logical_Router</code> that this route is valid
> +      for.
> +    </column>
> +
> +    <column name="logical_port">
> +      <p>
> +        If the type is <code>advertise</code> then this is the logical_port
> +        the router will send packets out.
> +      </p>
> +
> +      <p>
> +        If the type is <code>receive</code> then this is the logical_port
> +        the route was learned on.
> +      </p>
> +    </column>
> +
> +    <column name="ip_prefix">
> +      <p>
> +        IP prefix of this route (e.g. 192.168.100.0/24).
> +      </p>
> +    </column>
> +
> +    <column name="nexthop">
> +      <p>
> +        If the type is <code>advertise</code> then this is empty.
> +      </p>
> +
> +      <p>
> +        If the type is <code>receive</code> then this is the nexthop ip we
> +        from the outside.
> +      </p>
> +    </column>
> +
> +    <column name="tracked_port">
> +      <p>
> +        Only relevant for type <code>advertise</code>.
> +
> +        In combination with a host <code>ip_prefix</code> this trackes the 
> port

Typo: trackes

> +        OVN will forward the packets for this destination to.
> +
> +        An announcing chassis can use this information to check if this
> +        destination is local and adjust the route priorities based on that.
> +      </p>
> +    </column>
> +
> +    <column name="type">
> +      <p>
> +        If the route is to be exported from OVN to the outside network or if
> +        it is imported from the outside network.
> +      </p>
> +      <ul>
> +        <li>
> +          <code>advertise</code>: This route should be advertised to the
> +          outside network.
> +       </li>
> +        <li>
> +          <code>receive</code>: This route has been learned from the outside
> +          network.
> +        </li>
> +      </ul>
> +    </column>
> +
> +    <column name="external_ids">
> +      See <em>External IDs</em> at the beginning of this document.
> +    </column>
> +  </table>
>  </database>

Regards,
Dumitru


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

Reply via email to