<font size=2 face="Courier New">Hi,</font><br><br><font size=2 face="Courier New">The </font><a href=https://review.openstack.org/#/c/237820/><font size=2 color=blue face="Courier New">https://review.openstack.org/#/c/237820/</font></a><font size=2 face="Courier New">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.</font><br><br><font size=2 face="Courier New">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.</font><br><br><font size=2 face="Courier New">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.</font><br><br><font size=2 face="Courier New">Logical Router Table:</font><br><font size=2 face="Courier New">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</font><br><font size=2 face="Courier New">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</font><br><br><font size=2 face="Courier New">Logical Router Port Table:</font><br><font size=2 face="Courier New">UUID-RA "fa:16:3e:59:80:ad"
"port-1" "192.168.1.1/24"      []</font><br><font size=2 face="Courier New">UUID-RB "fa:16:3e:59:80:ad"
"port-2" "2001:db8:cafe::1/64" []</font><br><br><font size=2 face="Courier New">Note that both ports (in both tables)
have the same MAC corresponding to the neutron router interface MAC.</font><br><br><font size=2 face="Courier New">This results in the following logical
flow:</font><br><font size=2 face="Courier New">...</font><br><font size=2 face="Courier New">table=3(switch_in_l2_lkup), priority=
  50, match=(eth.dst == fa:16:3e:59:80:ad), action=(outport = "port-2";
output;)</font><br><font size=2 face="Courier New">table=3(switch_in_l2_lkup), priority=
  50, match=(eth.dst == fa:16:3e:59:80:ad), action=(outport = "port-1";
output;)</font><br><br><font size=2 face="Courier New">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.</font><br><br><font size=2 face="Courier New">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.</font><br><br><font size=2 face="Courier New">Thanks</font><br><font size=2 face="Courier New">Amitabha</font><br><BR>