<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* 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;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle25
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle26
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle27
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle28
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle29
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle30
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle31
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Huifeng, thank you for this doing this analysis.   What are the next steps for these patches?  You suggest that we not upstream them, but do we keep them and carry them going forward, do we remove them – if so,
 is there any impact?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">          brucej<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><a name="_____replyseparator"></a><b>From:</b> Le, Huifeng <br>
<b>Sent:</b> Sunday, August 12, 2018 10:52 PM<br>
<b>To:</b> Jolliffe, Ian <Ian.Jolliffe@windriver.com>; Rowsell, Brent <Brent.Rowsell@windriver.com>; Peters, Matt <Matt.Peters@windriver.com><br>
<b>Cc:</b> Zhao, Forrest <forrest.zhao@intel.com>; Troyer, Dean <dean.troyer@intel.com>; Jones, Bruce E <bruce.e.jones@intel.com>; starlingx-discuss@lists.starlingx.io<br>
<b>Subject:</b> Analysis report about Network Trunk feature for StartlingX upstreaming<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Ian/Brent/Matt,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We did analysis about the Network trunk related patches for StartingX upstream, below are the suggestions for upstreaming, could you please help to review and comment? Thanks much!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">1.  ba9d9f60a7a2665194cacb92a05e0acd2dc3de41: Add rpc notification for trunk updates<o:p></o:p></p>
<p class="MsoNormal">     <b>Function</b>: sent notification to the agent when a trunk is updated<o:p></o:p></p>
<p class="MsoNormal">     <b>Analysis</b>:<o:p></o:p></p>
<p class="MsoNormal">      (1)Trunk’s AFTER_UPDATE event is generated for API call: PUT /v2.0/trunks/{trunk-id}<o:p></o:p></p>
<p class="MsoNormal" style="text-indent:.25in"><i><span lang="EN" style="font-size:10.0pt;font-family:"Segoe UI",sans-serif;color:#333333">The update request is only for changing fields like name, description or admin_state_up. Setting the admin_state_up to
 False locks the trunk in that it prevents operations such as adding/removing subports.<o:p></o:p></span></i></p>
<p class="MsoNormal" style="text-indent:.25in">In Neutron upstream, admin_state_up is used in server side, e.g. add_subports, remove subports, delete_trunk and not used in agent side<o:p></o:p></p>
<p class="MsoNormal">      (2)OVS trunk agent driver uses OVSDB event to handle trunk event, no need to manually trigger trunk update event<o:p></o:p></p>
<p class="MsoNormal">     (3)Linux trunk agent driver will handle trunk update event triggered by server, while it will need apply the patch only in case admin_state_up update need to be handled<o:p></o:p></p>
<p class="MsoNormal">     <b>Suggestion: </b>Not a bug for Neutron upstream, suggest not to upstream<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">2. 6955351c5eca6e37061fb0140d11ea53693fe0e1: Add support to delete bound network<o:p></o:p></p>
<p class="MsoNormal">     <b>Function</b>: enable delete trunk if it is can_be_trunked (not bounded or driver’s can_trunk_bound_port=true)<o:p></o:p></p>
<p class="MsoNormal">     <b>Analysis</b>: Applied for LinuxBridge Driver and AVS bridge Driver (can_trunk_bound_port=True), no impact for OVSTrunkDriver (can_trunk_bound_port=False). workaround also available for linux bridge (e.g. unbind the port first then
 delete the trunk)<o:p></o:p></p>
<p class="MsoNormal">     <b>Suggestion</b>: it is a low priority bug for Neutron upstream (only applied for linux bridge and workround available), suggest not to upstream<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">3. 43a684946e781a25d21a4f50b8dc67d61be42809: Enable trunk service by default<o:p></o:p></p>
<p class="MsoNormal">     <b>Function</b>: add “trunk” in DEFAULT_SERVICE_PLUGINS<o:p></o:p></p>
<p class="MsoNormal">     <b>Analysis</b>: It is a deploy configuration for downstream product<o:p></o:p></p>
<p class="MsoNormal">     <b>Suggestion</b>: Not a bug for Neutron upstream, suggest not to upstream<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">4. c54d804792f10b7f505de6794274c4df4768f6f0: Include trunk presence in port details<o:p></o:p></p>
<p class="MsoNormal">     <b>Function</b>: add trunk_port (bool) flag in port_details to identify whether this port is a parent port for a trunk<o:p></o:p></p>
<p class="MsoNormal">     <b>Analysis</b>: It is a performance improvement for AVS agent by reducing RPC call from agent to server. OVS agent has different implementation with no improvement by introducing this field<o:p></o:p></p>
<p class="MsoNormal">     <b>Suggestion</b>: Not a bug for Neutron upstream, suggest not to upstream<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">5. 3eed837ebd236e6b1959ea88d9ab5322c9eef6b9: Ignore trunk subports on same vlan as vlan-subnet ports<o:p></o:p></p>
<p class="MsoNormal">     <b>Function</b>: Ignore trunk subports on same vlan as vlan-subnet ports<o:p></o:p></p>
<p class="MsoNormal">     <b>Analysis</b>: It is a bug fix for AVS agent<o:p></o:p></p>
<p class="MsoNormal">     <b>Suggestion</b>: Not a bug for Neutron upstream, suggest not to upstream<o:p></o:p></p>
<p class="MsoNormal"><b><i><o:p> </o:p></i></b></p>
<p class="MsoNormal"><b><i>Best Regards,<o:p></o:p></i></b></p>
<p class="MsoNormal"><b><i>Le, Huifeng</i></b><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"> </span><span lang="EN-CA"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA" style="color:#1F497D"> </span><span lang="EN-CA"><o:p></o:p></span></p>
</div>
</body>
</html>