<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=iso-8859-1">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@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:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:21.0pt;
font-size:10.5pt;
font-family:"Calibri","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.highlight1
{mso-style-name:highlight1;
background:#D6EBF9;}
.MsoChpDefault
{mso-style-type:export-only;}
/* Page Definitions */
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:665328156;
mso-list-type:hybrid;
mso-list-template-ids:1435019910 1890859900 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:18.0pt;
text-indent:-18.0pt;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></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="ZH-CN" link="blue" vlink="purple" style="text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi, folks,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">my testing case is as follows:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">1.delete dhcp port<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">2.restart dhcp-agent<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">then, there will be double dhcp port.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m not sure whether dhcp port should be vied for user and can be deleted, IMO, dhcp port is inner port and thus is not supposed to view for user. Now, if we delete the dhcp port, we will create double dhcp port.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> def enable(self):<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> """Enables DHCP for this network by spawning a local process."""<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> interface_name = self.device_manager.setup(self.network,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> reuse_existing=True) ---------</span><span lang="EN-US" style="font-family:Wingdings">à</span><span lang="EN-US">create the first dhcp port<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> if self.active:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> self.restart() ---------</span><span lang="EN-US" style="font-family:Wingdings">à</span><span lang="EN-US">create duplicate dhcp port<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> elif self._enable_dhcp():<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> self.interface_name = interface_name<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"> self.spawn_process() <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">so, alternative solutions:<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN-US"><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span lang="EN-US">Dhcp port should not be viewed for user, so , user can’t delete it<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN-US"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span lang="EN-US">Deleting dhcp port and restart the dhcp-agent, we should get network before creating dhcp port rather than passthrough.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Regards, <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">XuRong Yang<o:p></o:p></span></p>
</div>
</body>
</html>