<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 1/29/19 1:25 AM, Duarte Cardoso,
      Igor wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:E09EC9A2DDB2914E953966C44BEF9CF633F86A76@ORSMSX103.amr.corp.intel.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Hi Neutron,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I've been internally collaborating on the
          ``dvr_bridge`` L3 agent mode [1][2][3] work (David
          Shaughnessy, Xubo Zhang), which allows the L3 agent to make
          use of Open vSwitch / OpenFlow to implement ``distributed``
          IPv4 Routers thus bypassing kernel namespaces and iptables and
          opening the door for higher performance by keeping packets in
          OVS for longer.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I want to share a few questions in order to
          gather feedback from you. I understand parts of these
          questions may have been answered in the past before my
          involvement, but I believe it's still important to revisit and
          clarify them. This can impact how long it's going to take to
          complete the work and whether it can make it to stein-3.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">1. Should OVS support also be added to the
          legacy router?<o:p></o:p></p>
        <p class="MsoNormal">And if so, would it make more sense to have
          a new variable (not ``agent_mode``) to specify what backend to
          use (OVS or kernel) instead of creating more combinations?</p>
      </div>
    </blockquote>
    Personally, I would like to see all routers implemented completely
    in the OVS data path. We can't do everything at once, so the
    DVR-first approach here seems reasonable to me. As to the question
    of config flags, agent_mode has a specific meaning. It effectively
    tells the agent what role it's playing (SNAT, SNAT_HA, etc.), not
    how to do it. dvr_bridge isn't a new mode, it's really a change to
    the backend implementation of the router (ie the "how"). Because of
    that, I'm partial to an "agent_mode" flag which will toggle the
    router implementation between OVS and namespace implementations.<br>
    <blockquote type="cite"
cite="mid:E09EC9A2DDB2914E953966C44BEF9CF633F86A76@ORSMSX103.amr.corp.intel.com">
      <div class="WordSection1">
        <p class="MsoNormal"><o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">2. What is expected in terms of CI for
          this? Regarding testing, what should this first patch include
          apart from the unit tests? (since the l3_agent.ini needs to be
          configured differently).<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">3. What problems can be anticipated by
          having the same agent managing both kernel and OVS powered
          routers (depending on whether they were created as
          ``distributed``)?<o:p></o:p></p>
        <p class="MsoNormal">We are experimenting with different ways of
          decoupling RouterInfo (mainly as part of the L3 agent refactor
          patch) and haven't been able to find the right balance yet. On
          one end we have an agent that is still coupled with
          kernel-based RouterInfo, and on the other end we have an agent
          that either only accepts OVS-based RouterInfos or only
          kernel-based RouterInfos depending on the ``agent_mode``.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">We'd also appreciate reviews on the 2
          patches [4][5]. The L3 refactor one should be able to pass
          Zuul after a recheck.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">[1] Spec:
          <a class="moz-txt-link-freetext" href="https://blueprints.launchpad.net/neutron/+spec/openflow-based-dvr">https://blueprints.launchpad.net/neutron/+spec/openflow-based-dvr</a><o:p></o:p></p>
        <p class="MsoNormal">[2] RFE:
          <a class="moz-txt-link-freetext" href="https://bugs.launchpad.net/neutron/+bug/1705536">https://bugs.launchpad.net/neutron/+bug/1705536</a><o:p></o:p></p>
        <p class="MsoNormal">[3] Gerrit topic:
<a class="moz-txt-link-freetext" href="https://review.openstack.org/#/q/topic:dvr_bridge+(status:open+OR+status:merged)">https://review.openstack.org/#/q/topic:dvr_bridge+(status:open+OR+status:merged)</a><o:p></o:p></p>
        <p class="MsoNormal">[4] L3 agent refactor patch:
          <a class="moz-txt-link-freetext" href="https://review.openstack.org/#/c/528336/29">https://review.openstack.org/#/c/528336/29</a><o:p></o:p></p>
        <p class="MsoNormal">[5] dvr_bridge patch:
          <a class="moz-txt-link-freetext" href="https://review.openstack.org/#/c/472289/17">https://review.openstack.org/#/c/472289/17</a><o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Thank you!<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span lang="EN-IE">Best regards,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-IE">Igor D.C.<o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
    </blockquote>
    -Ryan<br>
  </body>
</html>