Groups of nodes can be assembled into reusable collections using the "grouping" statement. A grouping defines a set of nodes that are instantiated using the "uses" statement.
YANG example:
grouping target { leaf address { type inet:ip-address; description "Target IP address"; } leaf port { type inet:port-number; description "Target port number"; } } container peer { container destination { uses target; } }
NETCONF XML example:
<peer> <destination> <address>192.168.2.1</address> <port>830</port> </destination> </peer>
The grouping can be refined as it is used, allowing certain statements to be overridden. The following example shows how the description is refined:
container connection { container source { uses target { refine "address" { description "Source IP address"; } refine "port" { description "Source port number"; } } } container destination { uses target { refine "address" { description "Destination IP address"; } refine "port" { description "Destination port number"; } } } }