Subject: [Netconf] Clarification about subtree filtering

From: Shiva Kumar Pathori <[email-masked]>
Date: Thu, 17 May 2018 23:54:04 +0530

Hi,
Can somebody clarify what could be the response for the <get-config>
operation provided below.

Following is the user information in the datastore that is provided in the
RFC 6241 as example.

> <rpc message-id="101"
>           xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>        <get-config>
>          <source>
>            <running/>
>          </source>
>          <filter type="subtree">
>            <top xmlns="http://example.com/schema/1.2/config">
>              <users/>
>            </top>
>          </filter>
>        </get-config>
>      </rpc>

<rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>   <data>
>     <top xmlns="http://example.com/schema/1.2/config">
>       <users>
>         <user>
>           <name>root</name>
>           <type>superuser</type>
>           <full-name>Charlie Root</full-name>
>           <company-info>
>             <dept>1</dept>
>             <id>1</id>
>           </company-info>
>         </user>
>         <user>
>           <name>fred</name>
>           <type>admin</type>
>           <full-name>Fred Flintstone</full-name>
>           <company-info>
>             <dept>2</dept>
>             <id>2</id>
>           </company-info>
>         </user>
>         <user>
>           <name>barney</name>
>           <type>admin</type>
>           <full-name>Barney Rubble</full-name>
>           <company-info>
>             <dept>2</dept>
>             <id>3</id>
>           </company-info>
>         </user>
>       </users>
>     </top>
>   </data>
> </rpc-reply>

*The <get-config> operation with content-match at parent and child nodes;*

<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>   <get-config>
>     <source>
>       <running/>
>     </source>
>     <filter type="subtree">
>       <top xmlns="http://example.com/schema/1.2/config">
>         <users>
>           <user>
>             <type>admin</name>
>             <company-info>
>               <dept>1</dept>
>             </company-info>
>           </user>
>         </users>
>       </top>
>     </filter>
>   </get-config>
> </rpc>

*The equivalent XPATH expression : *

> <rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>   <get-config>
>     <source>
>       <running/>
>     </source>
>     <filter xmlns:t="http://example.com/schema/1.2/config"
>                  type="xpath"
>
>  select="/t:top/t:users/t:user[t:type='admin']/t:company-info[t:dept=’1’]"/>
>         </get-config>
>      </rpc>

For this what could be the response

a) The response based on content-match nodes are AND-ed together

> <rpc-reply message-id="101"
> xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>        <data>
>       </data>
>      </rpc-reply>

OR

b)  The response based on content-match nodes treated separately

> <rpc-reply message-id="101"
> xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>   <data>
>     <top xmlns="http://example.com/schema/1.2/config">
>       <users>
>         <user>
>           <name>fred</name>
>           <type>admin</type>
>           <full-name>Fred Flintstone</full-name>
>         </user>
>         <user>
>           <name>barney</name>
>           <type>admin</type>
>           <full-name>Barney Rubble</full-name>
>         </user>
>       </users>
>     </top>
>   </data>
> </rpc-reply>

Regards,
Shiva