<div dir="ltr">Hello Ben,<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><pre class="gmail-m_4009646088118669252gmail-newpage" style="white-space:pre-wrap;font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">The &lt;monitor-requests&gt; object maps the name of the table to be monitored </pre></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><pre class="gmail-m_4009646088118669252gmail-newpage" style="white-space:pre-wrap;font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">to an array of &lt;monitor-request&gt; objects. Each &lt;monitor-request&gt; is an </pre></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><pre class="gmail-m_4009646088118669252gmail-newpage" style="white-space:pre-wrap;font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">object with the following members:</pre></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><pre class="gmail-m_4009646088118669252gmail-newpage" style="white-space:pre-wrap;font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">       &quot;columns&quot;: [&lt;column&gt;*]            optional</pre></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><pre class="gmail-m_4009646088118669252gmail-newpage" style="white-space:pre-wrap;font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">       &quot;select&quot;: &lt;monitor-select&gt;        optional</pre></div></div></blockquote><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><pre class="gmail-m_4009646088118669252gmail-newpage" style="white-space:pre-wrap;font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"></pre></div><br></div><div><div style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px">As the &lt;monitor-requests&gt; maps the table name to be monitored to an array of &lt;monitor-request&gt;, my interpretation of it is as &quot;Table Name &lt;--&gt; Array of &lt;monitor-request&gt;&quot; </div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px">I am giving an example message is given below. </div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div><div><span style="font-size:12.8px">{</span></div><div><span style="font-size:12.8px">  &quot;id&quot;: &quot;c5c09c07-11c1-449b-8f04-016fefe15844&quot;,</span></div><div><span style="font-size:12.8px">  &quot;method&quot;: &quot;monitor&quot;,</span></div><div><span style="font-size:12.8px">  &quot;params&quot;: [</span></div><div><span style="font-size:12.8px">    &quot;hardware_vtep&quot;,</span></div><div><span style="font-size:12.8px">    &quot;91c9eed4-00bb-48e3-b2d9-51e0364bbdc2&quot;,</span></div><div><span style="font-size:12.8px">    {</span></div><div><span style="font-size:12.8px">      &quot;Physical_Locator&quot;: [</span></div><div><span style="font-size:12.8px">        {</span></div><div><span style="font-size:12.8px">          &quot;columns&quot;: [</span></div><div><span style="font-size:12.8px">            &quot;dst_ip&quot;,</span></div><div><span style="font-size:12.8px">            &quot;encapsulation_type&quot;,</span></div><div><span style="font-size:12.8px">            &quot;_uuid&quot;</span></div><div><span style="font-size:12.8px">          ],</span></div><div><span style="font-size:12.8px">          &quot;select&quot;: {</span></div><div><span style="font-size:12.8px">            &quot;initial&quot;: true,</span></div><div><span style="font-size:12.8px">            &quot;insert&quot;: true,</span></div><div><span style="font-size:12.8px">            &quot;delete&quot;: true,</span></div><div><span style="font-size:12.8px">            &quot;modify&quot;: true</span></div><div><span style="font-size:12.8px">          }</span></div><div><span style="font-size:12.8px">        },</span></div><div><span style="font-size:12.8px">        {</span></div><div><span style="font-size:12.8px">          &quot;columns&quot;: [</span></div><div><span style="font-size:12.8px">            &quot;_uuid&quot;,</span></div><div><span style="font-size:12.8px">            &quot;locators&quot;</span></div><div><span style="font-size:12.8px">          ],</span></div><div><span style="font-size:12.8px">          &quot;select&quot;: {</span></div><div><span style="font-size:12.8px">            &quot;initial&quot;: true,</span></div><div><span style="font-size:12.8px">            &quot;insert&quot;: true,</span></div><div><span style="font-size:12.8px">            &quot;delete&quot;: true,</span></div><div><span style="font-size:12.8px">            &quot;modify&quot;: true</span></div><div><span style="font-size:12.8px">          }</span></div><div><span style="font-size:12.8px">        }</span></div><div><span style="font-size:12.8px">      ]</span></div><div><span style="font-size:12.8px">    }</span></div><div><span style="font-size:12.8px">  ]</span></div><div><span style="font-size:12.8px">}</span></div></div><div><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">/anil.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 6, 2018 at 11:30 AM, Ben Pfaff <span dir="ltr">&lt;<a href="mailto:blp@ovn.org" target="_blank">blp@ovn.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Mon, Mar 05, 2018 at 10:03:13PM -0800, Anil Jangam wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; The RFC7047 states below about the Monitor request.<br>
&gt;<br>
&gt; The request object has the<br>
&gt;<br>
&gt;    following members:<br>
&gt;<br>
&gt;    o  &quot;method&quot;: &quot;monitor&quot;<br>
&gt;<br>
&gt;    o  &quot;params&quot;: [&lt;db-name&gt;, &lt;json-value&gt;, &lt;monitor-requests&gt;]<br>
&gt;<br>
&gt;    o  &quot;id&quot;: &lt;nonnull-json-value&gt;<br>
&gt;<br>
&gt;<br>
&gt; The &lt;json-value&gt; parameter is used to match subsequent update<br>
&gt;<br>
&gt; notifications (see below) to this request.<br>
&gt;<br>
&gt;<br>
&gt; The &lt;monitor-requests&gt; object maps the name of the table to be monitored<br>
&gt;<br>
&gt; to an array of &lt;monitor-request&gt; objects. Each &lt;monitor-request&gt; is an<br>
&gt;<br>
&gt; object with the following members:<br>
&gt;<br>
&gt;        &quot;columns&quot;: [&lt;column&gt;*]            optional<br>
&gt;<br>
&gt;        &quot;select&quot;: &lt;monitor-select&gt;        optional<br>
&gt;<br>
&gt; The columns, if present, define the columns within the table to be monitored.<br>
&gt;<br>
&gt; &lt;monitor-select&gt; is an object with the following members:<br>
&gt;<br>
&gt;        &quot;initial&quot;: &lt;boolean&gt;              optional<br>
&gt;<br>
&gt;        &quot;insert&quot;: &lt;boolean&gt;               optional<br>
&gt;<br>
&gt;        &quot;delete&quot;: &lt;boolean&gt;               optional<br>
&gt;<br>
&gt;        &quot;modify&quot;: &lt;boolean&gt;               optional<br>
&gt;<br>
&gt; The contents of this object specify how the columns or table are to be<br>
&gt; monitored,<br>
&gt;<br>
&gt; as explained in more detail below.<br>
&gt;<br>
&gt;<br>
&gt; However, when I look at some of the legitimate samples of the Monitor<br>
&gt; requests, they are encoded as below.<br>
&gt;<br>
&gt; {<br>
&gt;   &quot;id&quot;: &quot;c5c09c07-11c1-449b-8f04-<wbr>016fefe15844&quot;,<br>
&gt;   &quot;method&quot;: &quot;monitor&quot;,<br>
&gt;   &quot;params&quot;: [<br>
&gt;     &quot;hardware_vtep&quot;,<br>
&gt;     &quot;91c9eed4-00bb-48e3-b2d9-<wbr>51e0364bbdc2&quot;,<br>
&gt;     {<br>
&gt;       &quot;Physical_Locator&quot;: {<br>
&gt;         &quot;columns&quot;: [<br>
&gt;           &quot;dst_ip&quot;,<br>
&gt;           &quot;encapsulation_type&quot;,<br>
&gt;           &quot;_uuid&quot;<br>
&gt;         ],<br>
&gt;         &quot;select&quot;: {<br>
&gt;           &quot;initial&quot;: true,<br>
&gt;           &quot;insert&quot;: true,<br>
&gt;           &quot;delete&quot;: true,<br>
&gt;           &quot;modify&quot;: true<br>
&gt;         }<br>
&gt;       },<br>
&gt;       &quot;Physical_Locator_Set&quot;: {<br>
&gt;         &quot;columns&quot;: [<br>
&gt;           &quot;_uuid&quot;,<br>
&gt;           &quot;locators&quot;<br>
&gt;         ],<br>
&gt;         &quot;select&quot;: {<br>
&gt;           &quot;initial&quot;: true,<br>
&gt;           &quot;insert&quot;: true,<br>
&gt;           &quot;delete&quot;: true,<br>
&gt;           &quot;modify&quot;: true<br>
&gt;         }<br>
&gt;       }<br>
&gt;     }<br>
&gt;   ]<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; If we go by the RFC encoding rules, &quot;params&quot; contains the<br>
&gt; &lt;monitor-requests&gt;, which maps the &quot;Table name&quot; to an array of<br>
&gt; &lt;Monitor-request&gt; object. So IMHO, the table names comes only once in the<br>
&gt; message. Correct?<br>
<br>
</div></div>Yes.  That&#39;s what I see above.  The table names are Physical_Locator and<br>
Physical_Locator_Set, and each of them is mentioned once.<br>
In the &lt;monitor-requests&gt; object &quot;Physical_Locator&quot; is mapped to:<br>
<span class=""><br>
       {<br>
         &quot;columns&quot;: [<br>
           &quot;dst_ip&quot;,<br>
           &quot;encapsulation_type&quot;,<br>
           &quot;_uuid&quot;<br>
         ],<br>
         &quot;select&quot;: {<br>
           &quot;initial&quot;: true,<br>
           &quot;insert&quot;: true,<br>
           &quot;delete&quot;: true,<br>
           &quot;modify&quot;: true<br>
         }<br>
       }<br>
<br>
</span>and similarly for &quot;Physical_Locator_Set&quot;.<br>
<span class=""><br>
&gt; Also, it is explicitly mentioned that (as below) and it does NOT contain<br>
&gt; the &quot;Table name&quot; in it.<br>
&gt;<br>
&gt;<br>
&gt; Each &lt;monitor-request&gt; is an<br>
&gt;<br>
&gt; object with the following members:<br>
&gt;<br>
&gt;        &quot;columns&quot;: [&lt;column&gt;*]            optional<br>
&gt;<br>
&gt;        &quot;select&quot;: &lt;monitor-select&gt;        optional<br>
&gt;<br>
&gt;<br>
&gt; However, in the message payload that I have, shows the tuple, which<br>
&gt; contains &quot;Table : Columns : Select&quot;. This list of &lt;monitor-request&gt; constitute<br>
&gt; the &lt;monitor-requests&gt; as per the RFC definition.<br>
&gt;<br>
&gt; I see this as the discrepancy between the RFC definition and how the<br>
&gt; message is actually sent by the controller.<br>
<br>
</span>I don&#39;t understand what discrepancy you see.  Can you show an example,<br>
for example by providing how you think the above example should actually<br>
be encoded?<br>
</blockquote></div><br></div>