[openstack-dev] [networking-ovn] Supporting multiple routes per router interface
Amitabha Biswas
abiswas at us.ibm.com
Tue Nov 24 20:47:07 UTC 2015
Hi,
The https://review.openstack.org/#/c/237820/ patch added the support for
adding router interfaces in OVN NB. This patch only provides support for a
single route per interface. Neutron supports multiple routes per router
interface. While attempting to model this in OVN Northbound DB, I ran into
some problems.
The OVN Northbound DB at this point supports only a single route per
Logical Router Port. To solve the multiple route (per router interface)
issue while working within this OVN NB model restriction, I created
multiple lport and lrouter port for each subnet supported by a router
interface.
Let's say a router interface supports both 192.168.1.0/24 and
2001:db8:cafe::/64 routes, I added 2 lport and 2 lrouter ports in the OVN
NB.
Logical Router Table:
UUID-PA ["fa:16:3e:59:80:ad 192.168.1.1"] "port-1"
{router-port="UUID-RA"} ["fa:16:3e:59:80:ad"] router
UUID-PB ["fa:16:3e:59:80:ad 2001:db8:cafe::1"] "port-2"
{router-port="UUID-RB"} ["fa:16:3e:59:80:ad"] router
Logical Router Port Table:
UUID-RA "fa:16:3e:59:80:ad" "port-1" "192.168.1.1/24" []
UUID-RB "fa:16:3e:59:80:ad" "port-2" "2001:db8:cafe::1/64" []
Note that both ports (in both tables) have the same MAC corresponding to
the neutron router interface MAC.
This results in the following logical flow:
...
table=3(switch_in_l2_lkup), priority= 50, match=(eth.dst ==
fa:16:3e:59:80:ad), action=(outport = "port-2"; output;)
table=3(switch_in_l2_lkup), priority= 50, match=(eth.dst ==
fa:16:3e:59:80:ad), action=(outport = "port-1"; output;)
As we can see there are 2 conflicting/overlapping rules for the MAC in
table 3 and the packet could be sent to the wrong output port.
To support the multiple route per interface feature, we need to propose
that OVN NB allow multiple routes per logical router port in ovs-dev or
ovs-discuss. Additionally it seems that the MAC must be unique in the
Logical Router Table per Logical Flow.
Thanks
Amitabha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20151124/d3b4a7b8/attachment.html>
More information about the OpenStack-dev
mailing list