On Mon, Mar 05, 2018 at 10:03:13PM -0800, Anil Jangam wrote:
> Hi,
>
> The RFC7047 states below about the Monitor request.
>
> The request object has the
>
> following members:
>
> o "method": "monitor"
>
> o "params": [<db-name>, <json-value>, <monitor-requests>]
>
> o "id": <nonnull-json-value>
>
>
> The <json-value> parameter is used to match subsequent update
>
> notifications (see below) to this request.
>
>
> The <monitor-requests> object maps the name of the table to be monitored
>
> to an array of <monitor-request> objects. Each <monitor-request> is an
>
> object with the following members:
>
> "columns": [<column>*] optional
>
> "select": <monitor-select> optional
>
> The columns, if present, define the columns within the table to be monitored.
>
> <monitor-select> is an object with the following members:
>
> "initial": <boolean> optional
>
> "insert": <boolean> optional
>
> "delete": <boolean> optional
>
> "modify": <boolean> optional
>
> The contents of this object specify how the columns or table are to be
> monitored,
>
> as explained in more detail below.
>
>
> However, when I look at some of the legitimate samples of the Monitor
> requests, they are encoded as below.
>
> {
> "id": "c5c09c07-11c1-449b-8f04-016fefe15844",
> "method": "monitor",
> "params": [
> "hardware_vtep",
> "91c9eed4-00bb-48e3-b2d9-51e0364bbdc2",
> {
> "Physical_Locator": {
> "columns": [
> "dst_ip",
> "encapsulation_type",
> "_uuid"
> ],
> "select": {
> "initial": true,
> "insert": true,
> "delete": true,
> "modify": true
> }
> },
> "Physical_Locator_Set": {
> "columns": [
> "_uuid",
> "locators"
> ],
> "select": {
> "initial": true,
> "insert": true,
> "delete": true,
> "modify": true
> }
> }
> }
> ]
> }
>
>
>
> If we go by the RFC encoding rules, "params" contains the
> <monitor-requests>, which maps the "Table name" to an array of
> <Monitor-request> object. So IMHO, the table names comes only once in the
> message. Correct?
Yes. That's what I see above. The table names are Physical_Locator and
Physical_Locator_Set, and each of them is mentioned once.
In the <monitor-requests> object "Physical_Locator" is mapped to:
{
"columns": [
"dst_ip",
"encapsulation_type",
"_uuid"
],
"select": {
"initial": true,
"insert": true,
"delete": true,
"modify": true
}
}
and similarly for "Physical_Locator_Set".
> Also, it is explicitly mentioned that (as below) and it does NOT contain
> the "Table name" in it.
>
>
> Each <monitor-request> is an
>
> object with the following members:
>
> "columns": [<column>*] optional
>
> "select": <monitor-select> optional
>
>
> However, in the message payload that I have, shows the tuple, which
> contains "Table : Columns : Select". This list of <monitor-request> constitute
> the <monitor-requests> as per the RFC definition.
>
> I see this as the discrepancy between the RFC definition and how the
> message is actually sent by the controller.
I don't understand what discrepancy you see. Can you show an example,
for example by providing how you think the above example should actually
be encoded?
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss