<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="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 11 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:\5B8B\4F53;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@\5B8B\4F53";
        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;
        font-size:12.0pt;
        font-family:\5B8B\4F53;}
h1
        {margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:85.0pt;
        margin-bottom:.0001pt;
        mso-para-margin-top:1.0gd;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:0cm;
        mso-para-margin-left:85.0pt;
        mso-para-margin-bottom:.0001pt;
        text-indent:-21.25pt;
        page-break-after:avoid;
        mso-list:l0 level1 lfo8;
        layout-grid-mode:char;
        font-size:14.0pt;
        font-family:\5B8B\4F53;}
h2
        {margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:56.8pt;
        margin-bottom:.0001pt;
        mso-para-margin-top:.5gd;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:0cm;
        mso-para-margin-left:56.8pt;
        mso-para-margin-bottom:.0001pt;
        text-indent:-14.2pt;
        page-break-after:avoid;
        mso-list:l0 level2 lfo8;
        layout-grid-mode:char;
        font-size:12.0pt;
        font-family:Arial;}
h3
        {margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:238.2pt;
        margin-bottom:.0001pt;
        mso-para-margin-top:.5gd;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:0cm;
        mso-para-margin-left:238.2pt;
        mso-para-margin-bottom:.0001pt;
        text-indent:-59.55pt;
        line-height:125%;
        page-break-after:avoid;
        mso-list:l0 level3 lfo8;
        layout-grid-mode:char;
        font-size:12.0pt;
        font-family:\5B8B\4F53;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:\5B8B\4F53;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
        {margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:21.0pt;
        margin-bottom:.0001pt;
        mso-para-margin-top:0cm;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:0cm;
        mso-para-margin-left:2.0gd;
        mso-para-margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:\5B8B\4F53;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
        {margin-top:6.0pt;
        margin-right:0cm;
        margin-bottom:6.0pt;
        margin-left:0cm;
        text-align:center;
        font-size:22.0pt;
        font-family:Arial;
        font-weight:bold;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:9.0pt;
        font-family:\5B8B\4F53;}
pre
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:\5B8B\4F53;}
p.a, li.a, div.a
        {margin-top:2.5pt;
        margin-right:0cm;
        margin-bottom:2.5pt;
        margin-left:0cm;
        mso-para-margin-top:.5gd;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:.5gd;
        mso-para-margin-left:0cm;
        text-align:justify;
        text-justify:inter-ideograph;
        text-indent:10.0pt;
        line-height:125%;
        font-size:10.5pt;
        font-family:Arial;}
p.a0, li.a0, div.a0
        {margin:0cm;
        margin-bottom:.0001pt;
        mso-para-margin-top:.5gd;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:.5gd;
        mso-para-margin-left:0cm;
        mso-para-margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-indent:10.0pt;
        line-height:125%;
        font-size:10.5pt;
        font-family:Arial;}
p.a00, li.a00, div.a00
        {margin:0cm;
        margin-bottom:.0001pt;
        mso-para-margin-top:.5gd;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:0cm;
        mso-para-margin-left:0cm;
        mso-para-margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-indent:10.0pt;
        line-height:125%;
        font-size:10.5pt;
        font-family:Arial;}
span.EmailStyle25
        {mso-style-type:personal;
        font-family:Arial;
        color:navy;}
span.EmailStyle26
        {mso-style-type:personal;
        font-family:Arial;
        color:navy;}
span.EmailStyle27
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:2027631797;
        mso-list-template-ids:183805594;}
@list l0:level1
        {mso-level-style-link:"标题 1";
        mso-level-text:%1;
        mso-level-tab-stop:0cm;
        mso-level-number-position:left;
        margin-left:21.25pt;
        text-indent:-21.25pt;}
@list l0:level2
        {mso-level-style-link:"标题 2";
        mso-level-text:"%1\.%2";
        mso-level-tab-stop:0cm;
        mso-level-number-position:left;
        margin-left:14.2pt;
        text-indent:-14.2pt;}
@list l0:level3
        {mso-level-style-link:"标题 3";
        mso-level-text:"%1\.%2\.%3";
        mso-level-tab-stop:1.0cm;
        mso-level-number-position:left;
        margin-left:59.55pt;
        text-indent:-59.55pt;}
@list l0:level4
        {mso-level-text:"%1\.%2\.%3\.%4";
        mso-level-tab-stop:153.8pt;
        mso-level-number-position:left;
        margin-left:99.2pt;
        text-indent:-35.4pt;}
@list l0:level5
        {mso-level-text:"%1\.%2\.%3\.%4\.%5";
        mso-level-tab-stop:211.05pt;
        mso-level-number-position:left;
        margin-left:127.55pt;
        text-indent:-42.5pt;}
@list l0:level6
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
        mso-level-tab-stop:250.3pt;
        mso-level-number-position:left;
        margin-left:163.0pt;
        text-indent:-2.0cm;}
@list l0:level7
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
        mso-level-tab-stop:289.55pt;
        mso-level-number-position:left;
        margin-left:191.35pt;
        text-indent:-63.8pt;}
@list l0:level8
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
        mso-level-tab-stop:346.8pt;
        mso-level-number-position:left;
        margin-left:219.7pt;
        text-indent:-70.9pt;}
@list l0:level9
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
        mso-level-tab-stop:386.1pt;
        mso-level-number-position:left;
        margin-left:255.1pt;
        text-indent:-85.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=blue>

<div class=Section1>

<p class=MsoNormal><font size=3 face=宋体><span lang=EN-US style='font-size:12.0pt'><o:p> </o:p></span></font></p>

<pre><font size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;
font-family:Arial'>>My take on this is that we should first define what commands we want to<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>support, and then decide on what types to use for them, and add to that<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>what types we expect we will need.<o:p></o:p></span></font></pre><pre><font
size=1 color=navy face=Arial><span lang=EN-US style='font-size:9.0pt;
font-family:Arial;color:navy'><o:p> </o:p></span></font></pre>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>The commands what we need to support
are depended on the functionality <o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>of the modules. But the common
command are clear, like:<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getClassAttribute<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getInstanceAttribute<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getClassMethods<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'>getInstanceMethods<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face=Arial><span lang=EN-US
style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></p>

<pre><font size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;
font-family:Arial'><o:p> </o:p></span></font></pre><pre><font size=2
face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>The control channel API itself handles "opaque blobs" (which are usually<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>just UTF-8 strings), "lists" (ordered list), "hashes" (tag/value pairs),<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>and NULL type (used only in lists and hashes to indicate no data at that<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>element or tags without data.)<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>Some comments:<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>I like to include a sequence number on all messages sent.  This can be<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>added automatically somewhere, but the sequence is handy for one simple<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>reason:  it allows replies to be matched up with commands.  Either this,<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>or there needs to be a requirement that commands are only processed in<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>the order they are received.  For status and other commands, it might be<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>nice to get the data back in any order.  What are your thoughts on this?<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>Yes, I agree,<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>Also, on type 'string' either those need to be always defined as UTF-8<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>or we need an encoding="" parameter on those.  I would just as soon say<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>UTF-8 encoding on all string values.<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>I think UTF-8 is enough for us.<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>Will we ever want binary blobs?  I don't know if we'll ever be<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>transmitting things like images around or not.  It might be cool for a<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>UI to get little icons, for instance.  :)<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>>- --Michael<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>I will write some python code for BigTool,  which parse the command inputed by user, and produce a xml packet,  then send the packet to the Config Daemon, Finally display <o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>the feedback to user.<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>ZhangLIkun<o:p></o:p></span></font></pre><pre><font
size=2 face=Arial><span lang=EN-US style='font-size:10.5pt;font-family:Arial'>CNNIC<o:p></o:p></span></font></pre>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=2 face=Arial><span
lang=EN-US style='font-size:10.5pt;font-family:Arial'><o:p> </o:p></span></font></p>

</div>

</body>

</html>