RFC Errata
RFC 8944, "A YANG Data Model for Layer 2 Network Topologies", November 2020
Source of RFC: i2rs (rtg)
Errata ID: 6951
Status: Held for Document Update
Type: Technical
Publication Format(s) : TEXT, PDF, HTML
Reported By: Mohammed Riyas Valiyapalathingal
Date Reported: 2022-05-03
Held for Document Update by: Alvaro Retana
Date Held: 2022-06-22
Section 4 says:
augment "/nw:networks/nw:network" { when '/nw:networks/nw:network/nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Configuration parameters for the L2 network as a whole."; uses l2-topology-attributes; } augment "/nw:networks/nw:network/nw:node" { when '/nw:networks/nw:network/nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Configuration parameters for L2 at the node level."; uses l2-node-attributes; } augment "/nw:networks/nw:network/nt:link" { when '/nw:networks/nw:network/nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Augments L2 topology link information."; uses l2-link-attributes; } augment "/nw:networks/nw:network/nw:node/nt:termination-point" { when '/nw:networks/nw:network/nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Augments L2 topology termination point information."; uses l2-termination-point-attributes; }
It should say:
augment "/nw:networks/nw:network" { when 'nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Configuration parameters for the L2 network as a whole."; uses l2-topology-attributes; } augment "/nw:networks/nw:network/nw:node" { when '../nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Configuration parameters for L2 at the node level."; uses l2-node-attributes; } augment "/nw:networks/nw:network/nt:link" { when '../nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Augments L2 topology link information."; uses l2-link-attributes; } augment "/nw:networks/nw:network/nw:node/nt:termination-point" { when '../../nw:network-types/l2t:l2-topology' { description "Augmentation parameters apply only for networks with L2 topology."; } description "Augments L2 topology termination point information."; uses l2-termination-point-attributes; }
Notes:
With absolute XPaths on the augmentations, the meaning becomes “augment nw:network with l2-topology-attributes if ANY network in the list of networks has l2t:l2-topology”.
With that meaning, the following json snippet passes validation when it should not.
It has 2 instances of ietf-network, one at L2 and one at L3. L2 attributes are WRONGLY added to the L3 network and L3 node.
{
"ietf-network:networks": {
"network": [
{
"network-id": "l2-network",
"network-types": {
"ietf-l2-topology:l2-topology": {}
},
"node": [
{
"node-id": "l2-node"
}
]
},
{
"network-id": "l3-network",
"network-types": {
"ietf-l3-unicast-topology:l3-unicast-topology": {}
},
"ietf-l2-topology:l2-topology-attributes": {
"name": "L2Topology"
},
"node": [
{
"node-id": "l3-node",
"ietf-l2-topology:l2-node-attributes" : {
"name": "l2-node-name",
"management-address": [
"1.1.1.1"
],
"management-mac": "11:22:33:aa:bb:cc"
}
}
]
}
]
}
}
With relative XPaths as suggested, the meaning becomes “augment only if THIS network has l2t:l2-topology” and the json snippet above fails validation, as it should.