<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=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@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: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-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:114837871;
mso-list-type:hybrid;
mso-list-template-ids:-1568789418 -408378786 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1
{mso-list-id:997197644;
mso-list-type:hybrid;
mso-list-template-ids:1214542784 2043416610 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Calibri","sans-serif";
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l2
{mso-list-id:1002242547;
mso-list-type:hybrid;
mso-list-template-ids:877684940 1946291116 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l2:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l2:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l2:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l2:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l2:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l2:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l2:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l2:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l2:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l3
{mso-list-id:1632665442;
mso-list-type:hybrid;
mso-list-template-ids:-953385924 -1439421126 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l3:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:30.75pt;
text-indent:-.25in;}
@list l3:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:66.75pt;
text-indent:-.25in;}
@list l3:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:102.75pt;
text-indent:-9.0pt;}
@list l3:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:138.75pt;
text-indent:-.25in;}
@list l3:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:174.75pt;
text-indent:-.25in;}
@list l3:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:210.75pt;
text-indent:-9.0pt;}
@list l3:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:246.75pt;
text-indent:-.25in;}
@list l3:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:282.75pt;
text-indent:-.25in;}
@list l3:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
margin-left:318.75pt;
text-indent:-9.0pt;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1032" />
</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="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">While Running tests in an openwrt based IP gateway, we noticed openwrt hotplug restarts the minupnpd when Ethernet link goes up.<o:p></o:p></p>
<p class="MsoNormal">The restart results in the miniupnpd lossing its internal state and breaking the upnp GENA (General event notification arch) functions.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Please refer to the following tests for the problem description.<o:p></o:p></p>
<p class="MsoNormal"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter" />
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0" />
<v:f eqn="sum @0 1 0" />
<v:f eqn="sum 0 0 @1" />
<v:f eqn="prod @2 1 2" />
<v:f eqn="prod @3 21600 pixelWidth" />
<v:f eqn="prod @3 21600 pixelHeight" />
<v:f eqn="sum @0 0 1" />
<v:f eqn="prod @6 1 2" />
<v:f eqn="prod @7 21600 pixelWidth" />
<v:f eqn="sum @8 21600 0" />
<v:f eqn="prod @7 21600 pixelHeight" />
<v:f eqn="sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />
<o:lock v:ext="edit" aspectratio="t" />
</v:shapetype><v:shape id="_x0000_s1031" type="#_x0000_t75" alt="wan" style='position:absolute;margin-left:285.7pt;margin-top:12.75pt;width:42.75pt;height:17.25pt;z-index:251662336;visibility:visible;mso-width-percent:0;mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:0;mso-height-percent:0;mso-width-relative:margin;mso-height-relative:margin'>
<v:imagedata src="cid:image007.emz@01CFE872.2A23F8B0" o:title="" />
</v:shape><![endif]--><![if !vml]><span style="mso-ignore:vglayout">
<table cellpadding="0" cellspacing="0" align="left">
<tbody>
<tr>
<td width="381" height="17"></td>
</tr>
<tr>
<td></td>
<td><img width="57" height="23" src="cid:image008.png@01CFE872.2A23F8B0" alt="wan" v:shapes="_x0000_s1031"></td>
</tr>
</tbody>
</table>
</span><![endif]><o:p> </o:p></p>
<br style="mso-ignore:vglayout" clear="ALL">
<p class="MsoNormal" style="margin-bottom:10.0pt;line-height:115%"><!--[if gte vml 1]><v:shape id="_x0000_s1030" type="#_x0000_t75" alt="Device" style='position:absolute;margin-left:60.3pt;margin-top:1.35pt;width:48pt;height:29.25pt;z-index:251664384;visibility:visible;mso-width-percent:0;mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:0;mso-height-percent:0;mso-width-relative:margin;mso-height-relative:margin'>
<v:imagedata src="cid:image009.emz@01CFE872.2A23F8B0" o:title="" />
</v:shape><![endif]--><![if !vml]><span style="mso-ignore:vglayout;position:absolute;z-index:251664384;margin-left:80px;margin-top:2px;width:64px;height:39px"><img width="64" height="39" src="cid:image010.png@01CFE872.2A23F8B0" alt="Device" v:shapes="_x0000_s1030"></span><![endif]><!--[if gte vml 1]><v:shape id="_x0000_s1029" type="#_x0000_t75" alt="lan" style='position:absolute;margin-left:142.5pt;margin-top:-4.65pt;width:39pt;height:21pt;z-index:251663360;visibility:visible;mso-width-percent:0;mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:0;mso-height-percent:0;mso-width-relative:margin;mso-height-relative:margin'>
<v:imagedata src="cid:image011.emz@01CFE872.2A23F8B0" o:title="" />
</v:shape><![endif]--><![if !vml]><span style="mso-ignore:vglayout;position:relative;z-index:251663360"><span style="position:absolute;left:190px;top:-6px;width:52px;height:28px"><img width="52" height="28" src="cid:image012.png@01CFE872.2A23F8B0" alt="lan" v:shapes="_x0000_s1029"></span></span><![endif]><!--[if gte vml 1]><v:shape id="Straight_x0020_Connector_x0020_3" o:spid="_x0000_s1028" type="#_x0000_t75" style='position:absolute;margin-left:93.9pt;margin-top:19.2pt;width:93.75pt;height:.75pt;z-index:251661312;visibility:visible;mso-width-percent:0;mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:0;mso-height-percent:0;mso-width-relative:margin;mso-height-relative:margin'>
<v:imagedata src="cid:image013.png@01CFE872.2A23F8B0" o:title="" />
<o:lock v:ext="edit" aspectratio="f" />
</v:shape><![endif]--><![if !vml]><span style="mso-ignore:vglayout;position:absolute;z-index:251661312;margin-left:125px;margin-top:26px;width:125px;height:1px"><img width="125" height="1" src="cid:image013.png@01CFE872.2A23F8B0" v:shapes="Straight_x0020_Connector_x0020_3"></span><![endif]><!--[if gte vml 1]><v:shape id="_x0000_s1027" type="#_x0000_t75" alt="
Gateway
" style='position:absolute;margin-left:186.75pt;margin-top:-1.35pt;width:93pt;height:37.5pt;z-index:251660288;visibility:visible;mso-width-percent:0;mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:0;mso-height-percent:0;mso-width-relative:page;mso-height-relative:page'>
<v:imagedata src="cid:image014.emz@01CFE872.2A23F8B0" o:title="" />
</v:shape><![endif]--><![if !vml]><span style="mso-ignore:vglayout;position:relative;z-index:251660288"><span style="position:absolute;left:249px;top:-2px;width:124px;height:50px"><img width="124" height="50" src="cid:image015.png@01CFE872.2A23F8B0" alt="Gateway
" v:shapes="_x0000_s1027"></span></span><![endif]><!--[if gte vml 1]><v:shape id="Straight_x0020_Connector_x0020_1" o:spid="_x0000_s1026" type="#_x0000_t75" style='position:absolute;margin-left:279pt;margin-top:19.8pt;width:93.75pt;height:.75pt;z-index:251659264;visibility:visible;mso-width-percent:0;mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;mso-position-horizontal-relative:text;mso-position-vertical:absolute;mso-position-vertical-relative:text;mso-width-percent:0;mso-height-percent:0;mso-width-relative:margin;mso-height-relative:margin'>
<v:imagedata src="cid:image013.png@01CFE872.2A23F8B0" o:title="" />
<o:lock v:ext="edit" aspectratio="f" />
</v:shape><![endif]--><![if !vml]><span style="mso-ignore:vglayout;position:absolute;z-index:251659264;margin-left:372px;margin-top:26px;width:125px;height:1px"><img width="125" height="1" src="cid:image013.png@01CFE872.2A23F8B0" v:shapes="Straight_x0020_Connector_x0020_1"></span><![endif]><br>
<br>
<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Have Gateway wan link set to network1 with subnet a1.b1.c1.xx/255.255.255.0<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>DHCP server in network1 assign Gateway wan IP as a1.b1.c1.01<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">3.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Device sends SUBSCRIBE for eventSubURL to Gateway<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">4.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Gateway returns 200 OK<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">5.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Gateway sends NOTIFY to device with ExternalIPAddress a1.b1.c1.01.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">6.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Device sends 200 OK<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">7.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Bring wan link down <o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">8.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Gateway sends NOTIFY with ExternalIPAddress with WAN IP 0.0.0.0<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">9.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Device sends 200 OK<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">10.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Set the Gateway wan to network2 a2.b2.c2.xx/255.255.255.0<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">11.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>DHCP server in network2 assign Gateway wan IP as a2.b2.c2.02<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">12.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Gateway sends NOTIFY with ExternalIPAddress a2.b2.c2.02.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">13.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Device sends 200 OK<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">14.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Repeat step 7, bring wan link down<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">15.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Gateway should send NOTIFY as in step8; but it does not.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">16.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Repeat step1, have gateway wan set to network<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">17.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Gateway should send NOTIFY as in step5; but it does not.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">18.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Device sends UNSUBSCRIBE to Gateway<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;text-indent:-.25in;line-height:115%;mso-list:l3 level1 lfo1">
<![if !supportLists]><span style="mso-list:Ignore">19.<span style="font:7.0pt "Times New Roman"">
</span></span><![endif]>Getway should send 200OK; but it sends 412 instead.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:10.0pt;margin-left:30.75pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
After investigating the cause, we found in between step12 and step13; the gateway miniupnpd receives a SIGTERM signal and restarted. As a result, the new miniupnpd losses the subscription state.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
The SIGTERM is initiated from the hotplug in the following code (in /etc/hotplug.d/iface/50-miniupnpd file)<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
----------- Original script ------------------------------------------------------------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
[ -f /var/state/bootnetwork ] && exit 0<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
/etc/init.d/miniupnpd enabled && [ "$ACTION" = "ifup" ] && {<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
local iface<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
for iface in $(uci_get upnpd config internal_iface; uci_get upnpd config external_iface); do<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
[ "$INTERFACE" = "$iface" ] && /etc/init.d/miniupnpd restart<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
done<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
}<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
----------- ----------------------------------------------------------------------------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
Question1: is the restart for miniupnpd is necessary if it has been already running?<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
Question2: We add the following code (in the modified section) in the 50-miniupnp to escape the restart if the miniupnpd service_check passed.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
It seems the problem goes away. But we are not sure if the solution has no side effects. So, please anyone know this, give us a comment.<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
----------- Modified script ------------------------------------------------------------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
[ -f /var/state/bootnetwork ] && exit 0<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
# add the following 2 lines to avoid miniupnpd restarted if it pass the service check<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
. /lib/functions/service.sh<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
service_check /usr/sbin/miniupnpd && exit 0<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
/etc/init.d/miniupnpd enabled && [ "$ACTION" = "ifup" ] && {<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
local iface<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
for iface in $(uci_get upnpd config internal_iface; uci_get upnpd config external_iface); do<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
[ "$INTERFACE" = "$iface" ] && /etc/init.d/miniupnpd restart<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
done<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
} <o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
----------- ----------------------------------------------------------------------------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
Thanks<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
Kevin<o:p></o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpMiddle" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
<p class="MsoNormalCxSpLast" style="margin-bottom:10.0pt;mso-add-space:auto;line-height:115%">
<o:p> </o:p></p>
</div>
</body>
</html>