> Hi all,
>
> The currently established terminology we use in OVN for various types of
> routers and router ports is:
>
> - gateway routers
> - distributed routers
>    - these can optionally have "distributed gateway ports" (DGP)
>
> Our architecture docs describe them to some extent:
> https://github.com/ovn-org/ovn/blob/main/ovn-architecture.7.xml#L619-L752
>
> However, while established contributors/users might be used to the
> terminology and how the different types of routers/ports behave in
> practice, the naming is in my opinion extremely confusing.
>
> Let's start with the "Gateway Router":
>
> At a first glance one might think that this is the only type of router
> that can be used as a gateway out of the cluster.  That's not true, we
> also can use DGPs (I'll go to those later).  I didn't check but I assume
> the naming was chosen back when the implementation for such routers was
> added and it was the only way to implement OVN gateways.  But that's not
> necessarily true anymore.
>
> The way they work is through a NB database
> logical_router.options:chassis configuration which specifies on which
> chassis the router is "bound".  That means the router's logical pipeline
> only gets executed on that chassis.  Whenever traffic that's being
> processed on a different hypervisor needs to logically enter the
> "gateway router's" pipeline, the traffic will be tunneled towards the
> chassis the router is bound to.
>
> Then the DGP, "distributed gateway port":
>
> At a first glance one might think that the port (and corresponding
> router pipeline) implementation is somehow distributed across multiple
> OVN hypervisors.
>
> That's definitely not true, it's actually the opposite.  This is a
> router port that's part of a distributed router with the restriction
> that traffic that needs to be logically forwarded out that port and
> traffic that is received on that port will be first tunneled to the
> chassis the DGP is "bound" to.  Binding the DGP to a chassis happens
> either by configuring a NB.Gateway_Chassis or a NB.Ha_Chassis_Group (for
> HA) for that port.
>
> Then there's the "gateway" part of the DGP name.  I didn't check the
> history closely but I assume this is something that was chosen just
> because processing traffic on that router port is very similar to the
> "Gateway Router" case.
>
> Moreover, we know we have users that configure DGPs that are not really
> gateways out of the cluster.
>
> For example, ovn-kubernetes configures uses a distributed "cluster
> router" (in ovn-kubernetes terminology) whose main purpose is to connect
> per-node logical switches together.  The router ports attached to those
> switches are all configured as DGPs for the sole purpose of reducing the
> amount of local datapaths ovn-controllers on each node need to create
> OpenFlow rules for.  In the ovn-kubernetes case, there are actually
> dedicated "gateway routers", one per node, that are used as real
> gateways out of the OVN cluster.
>
> This brings me to the proposal part..
>
> Would it make sense to update the terminology across the OVN tree's
> documentation (and code) and stop using "gateway router" and
> "distributed gateway port"?
>
> We could instead use (and encourage our users to do the same) more
> explicit alternatives based on the real behavior of the router/router ports.
>
> One that comes to mind is:
> - "pinned" router/router-port
>
> Alternatives could be:
> - "chassis-specific" router/router-port
> - "chassis-local" router/router-port

Hi Dumitru, I second changing names a billion times over — these names 
rn are absolutely unbearable =) Personally, I find it difficult every 
time to grasp exactly what GW router means.

And I think "pinned" option sounds cooler.

> Looking forward to hearing opinions from the community!
>
> Thank you,
> Dumitru

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

Reply via email to