<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Here is the proposal in etherpad to make it more readable:</div><div class=""><br class=""></div><div class=""><a href="https://etherpad.openstack.org/p/Integration_with_OVN_L3_Gateway" class="">https://etherpad.openstack.org/p/Integration_with_OVN_L3_Gateway</a></div><div class=""><br class=""></div><div class="">Thanks</div><div class="">Amitabha</div><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 7, 2016, at 5:12 PM, Amitabha Biswas <<a href="mailto:azbiswas@gmail.com" class="">azbiswas@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><font face="Courier New" class="">Sorry that was a typo, it should read:</font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><font face="Courier New" class=""><br class=""></font></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class=""><div class=""><ul class=""><ol type="1" class=""><li class=""><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">Note that the MAC addresses of gtrp and dtrp will be the same on each OVN Join Network, but because they are in different branches of the network topology it doesn’t matter.</font></li></ul></ul></li></ol></ul></div></blockquote><font face="Courier New" class="">Amitabha</font></div><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class="">On Jun 7, 2016, at 4:39 PM, Bhalachandra Banavalikar <<a href="mailto:bhal.banavalikar@us.ibm.com" class="">bhal.banavalikar@us.ibm.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><p class=""><font color="#0000FF" class="">Can you please provide more details on lgrp and lip ports (last bullet in section 1)?</font><br class=""><br class=""><font color="#0000FF" class="">Thanks,</font><br class=""><font color="#0000FF" class="">Bhal</font><br class=""><br class=""><span id="cid:1__=07BBF558DF1241888f9e8a93df938690918c07B@" class=""><graycol.gif></span><font color="#424282" class="">Amitabha Biswas ---06/07/2016 01:56:23 PM---This proposal outlines the modifications needed in networking-ovn (addresses<span class="Apple-converted-space"> </span><a href="https://bugs.launchpad/" class="">https://bugs.launchpad</a>.</font><br class=""><br class=""><font size="2" color="#5F5F5F" class="">From:<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><font size="2" class="">Amitabha Biswas <<a href="mailto:azbiswas@gmail.com" class="">azbiswas@gmail.com</a>></font><br class=""><font size="2" color="#5F5F5F" class="">To:<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><font size="2" class="">"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org" class="">openstack-dev@lists.openstack.org</a>></font><br class=""><font size="2" color="#5F5F5F" class="">Cc:<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><font size="2" class="">Chandra Sekhar Vejendla/San Jose/IBM@IBMUS</font><br class=""><font size="2" color="#5F5F5F" class="">Date:<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><font size="2" class="">06/07/2016 01:56 PM</font><br class=""><font size="2" color="#5F5F5F" class="">Subject:<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><font size="2" class="">[openstack-dev] [neutron][networking-ovn] Integration with OVN NAT gateway (Proposal)</font><br class=""></p><hr width="100%" size="2" align="left" noshade="" class="" style="color: rgb(128, 145, 165);"><br class=""><br class=""><br class=""><font size="2" face="Courier New" class="">This proposal outlines the modifications needed in networking-ovn (addresses<span class="Apple-converted-space"> </span></font><a href="https://bugs.launchpad.net/networking-ovn/+bug/1551717" class=""><u class=""><font size="2" color="#0000FF" face="Courier New" class="">https://bugs.launchpad.net/networking-ovn/+bug/1551717</font></u></a><font size="2" face="Courier New" class="">) to provide Floating IP (FIP) and SNAT using the L3 gateway router patches.</font><br class=""><br class=""><a href="http://patchwork.ozlabs.org/patch/624312/" class=""><u class=""><font size="2" color="#0000FF" face="Courier New" class="">http://patchwork.ozlabs.org/patch/624312/</font></u></a><font size="2" face="Courier New" class=""><span class="Apple-converted-space"> </span></font><br class=""><a href="http://patchwork.ozlabs.org/patch/624312/" class=""><u class=""><font size="2" color="#0000FF" face="Courier New" class="">http://patchwork.ozlabs.org/patch/624313/</font></u></a><font size="2" face="Courier New" class=""><span class="Apple-converted-space"> </span></font><br class=""><a href="http://patchwork.ozlabs.org/patch/624312/" class=""><u class=""><font size="2" color="#0000FF" face="Courier New" class="">http://patchwork.ozlabs.org/patch/624314/</font></u></a><font size="2" face="Courier New" class=""><span class="Apple-converted-space"> </span></font><br class=""><a href="http://patchwork.ozlabs.org/patch/624312/" class=""><u class=""><font size="2" color="#0000FF" face="Courier New" class="">http://patchwork.ozlabs.org/patch/624315/</font></u></a><font size="2" face="Courier New" class=""><span class="Apple-converted-space"> </span></font><br class=""><a href="http://patchwork.ozlabs.org/patch/629607/" class=""><u class=""><font size="2" color="#0000FF" face="Courier New" class="">http://patchwork.ozlabs.org/patch/629607/</font></u></a><br class=""><br class=""><b class=""><font size="2" face="Courier New" class="">Diagram:</font></b><br class=""><br class=""><font size="2" face="Courier New" class="">+-------+ +-------+</font><br class=""><font size="2" face="Courier New" class="">| NET 1 | | NET 2 |</font><br class=""><font size="2" face="Courier New" class="">+-------+ +-------+</font><br class=""><font size="2" face="Courier New" class="">| |</font><br class=""><font size="2" face="Courier New" class="">| ********* |</font><br class=""><font size="2" face="Courier New" class="">| ** ** |</font><br class=""><font size="2" face="Courier New" class="">| ** * * ** |</font><br class=""><font size="2" face="Courier New" class="">+---RP1 * DR * RP2 --+</font><br class=""><font size="2" face="Courier New" class="">** * * **</font><br class=""><font size="2" face="Courier New" class="">** **<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><br class=""><font size="2" face="Courier New" class="">*********<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><br class=""><font size="2" face="Courier New" class="">DTRP (168.254.128.2)</font><br class=""><font size="2" face="Courier New" class="">|</font><br class=""><font size="2" face="Courier New" class="">|</font><br class=""><font size="2" face="Courier New" class="">|</font><br class=""><font size="2" face="Courier New" class="">+------------------+</font><br class=""><font size="2" face="Courier New" class="">| Transit Network |</font><br class=""><font size="2" face="Courier New" class="">| 169.254.128.0/30 |</font><br class=""><font size="2" face="Courier New" class="">+------------------+</font><br class=""><font size="2" face="Courier New" class="">|</font><br class=""><font size="2" face="Courier New" class="">|</font><br class=""><font size="2" face="Courier New" class="">|</font><br class=""><font size="2" face="Courier New" class="">|</font><br class=""><font size="2" face="Courier New" class="">GTRP (169.254.128.1)</font><br class=""><font size="2" face="Courier New" class="">*******<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><br class=""><font size="2" face="Courier New" class="">** **<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><br class=""><font size="2" face="Courier New" class="">** * * ** +------------------+</font><br class=""><font size="2" face="Courier New" class="">* GW *-----------------| Provider Network |</font><br class=""><font size="2" face="Courier New" class="">** * * ** +------------------+</font><br class=""><font size="2" face="Courier New" class="">** **<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><br class=""><font size="2" face="Courier New" class="">*******<span class="Apple-converted-space"> </span><span class="Apple-converted-space"> </span></font><br class=""><br class=""><b class=""><font size="2" face="Courier New" class="">New Entities:</font></b><br class=""><ul class=""><ol type="1" class=""><li class=""><font size="2" face="Courier New" class="">OVN Join/Transit Networks</font><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">One per Neutron Router - /30 address space with only 2 ports for e.g. 169.254.128.0/30<br class="">Created when an external gateway is added to a router.<br class="">One extra datapath per router with an External Gateway.<br class="">(Alternate option - One Transit Network in a deployment, IPAM becomes a headache - Not discussed here).</font></li><li class=""><font size="2" face="Courier New" class="">Prevent Neutron from using that /30 address space. Specify in networking-ovn conf file.</font></li><li class=""><font size="2" face="Courier New" class="">Create 1 new “Join” neutron network (to represent all Join OVN Networks) in the networking-ovn.<br class="">Note that it may be possible to replace the Join/Transit network using Router Peering in later versions (not discussed here).</font></li><li class=""><font size="2" face="Courier New" class="">Allocate 2 ports in the Join network in the networking-ovn plugin.</font><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">Logical Gateway Transit Router Port (gtrp), 169.254.128.1</font></li><li class=""><font size="2" face="Courier New" class="">Logical Distributed Transit Router Port (dtrp), 169.254.128.2</font></li></ul></ul></li><li class=""><font size="2" face="Courier New" class="">Note that Neutron only sees 1 Join network with 2 ports; OVN sees a replica of this Join network as a new Logical Switch for each Gateway Router. The mapping of OVN Logical Switch(es) Join(s) to Gateway Router is discussed in OVN (Default) Gateway Routers below.</font></li><li class=""><font size="2" face="Courier New" class="">Note that the MAC addresses of gtrp and dtrp will be the same on each OVN Join Network, but because they are in different branches of the network topology it doesn’t matter.</font></li></ul></ul></li><li class=""><font size="2" face="Courier New" class="">OVN (Default) Gateway Routers:</font><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">One per Neutron Router.</font></li><li class=""><font size="2" face="Courier New" class="">2 ports</font><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">Logical Gateway Transit Router Port (gtrp), 169.254.128.1 (same for each OVN Join network).</font></li><li class=""><font size="2" face="Courier New" class="">External/Provider Router Port (legwrp), this is allocated by neutron.</font></li></ul></ul></li><li class=""><font size="2" face="Courier New" class="">Scheduling - The current OVN gateway proposal relies on the CMS/nbctl to decide on which hypervisor (HV) to schedule a particular gateway router.</font><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">A setting on the chassis (new external_id key or a new column) that allows the hypervisor admin to specify that a chassis can or cannot be used to host a gateway router (similar to a network node in OpenStack). Default - Allow (for compatibility purposes).</font></li><li class=""><font size="2" face="Courier New" class="">The networking-ovn plugin picks up the list of “candidate” chassis from the Southbound DB and uses an existing scheduling algorithm</font><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">Use a simple random.choice i.e. ChanceScheduler (Version 1)</font></li><li class=""><font size="2" face="Courier New" class="">Tap into the neutron’s LeastRouterScheduler - but that requires the networking-ovn (or some a hacked up version of the L3 agent) to imitate the L3 agent running on various network nodes.</font></li></ul></ul></li></ul></ul></li><li class=""><font size="2" face="Courier New" class="">Populate the SNAT and DNAT columns in the logical router table. This is under review in OVS -<span class="Apple-converted-space"> </span></font><a href="http://openvswitch.org/pipermail/dev/2016-June/072169.html" class=""><u class=""><font size="2" color="#0000FF" face="Courier New" class="">http://openvswitch.org/pipermail/dev/2016-June/072169.html</font></u></a></li><li class=""><font size="2" face="Courier New" class="">Create static routing entry in the gateway router to route tenant bound traffic to the distributed logical<span class="Apple-converted-space"> </span><a href="http://router.ar/" class="">router.ar</a><span class="Apple-converted-space"> </span>gate</font></li></ul></ul></li></ol></ul><br class=""><b class=""><font size="2" face="Courier New" class="">Existing Entities:</font></b><br class=""><ul class=""><ol type="1" class=""><li class=""><font size="2" face="Courier New" class="">Distributed Logical Routers:</font><ul class=""><ul type="disc" class=""><li class=""><font size="2" face="Courier New" class="">Set the default gateway of the distributed logical router to the IP Address of the corresponding Logical Gateway Transit Router Port (169.254.128.1).</font></li></ul></ul></li></ol></ul><br class=""><font size="2" face="Courier New" class="">It would be good to get some feedback on this strategy. Guru mentioned that he saw a need for ARP response across multiple gateway routers, we don’t see that requirement in this design/use-case.</font><br class=""><br class=""><font size="2" face="Courier New" class="">Thanks</font><br class=""><font size="2" face="Courier New" class="">Amitabha (azbiswas) and Chandra (chandrav)</font><br class=""><tt class="">__________________________________________________________________________<br class="">OpenStack Development Mailing List (not for usage questions)<br class="">Unsubscribe:<span class="Apple-converted-space"> </span><a href="mailto:OpenStack-dev-request@lists.openstack.org" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class=""></tt><tt class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></tt><tt class=""><br class=""></tt><br class=""><br class=""><br class=""></div>__________________________________________________________________________<br class="">OpenStack Development Mailing List (not for usage questions)<br class="">Unsubscribe:<span class="Apple-converted-space"> </span><a href="mailto:OpenStack-dev-request@lists.openstack.org" class="">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class=""><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></div></blockquote></div></div></blockquote></div><br class=""></body></html>